android 自定义控件 attrs,android 使用attrs自定义控件

android 自定义控件 attrs,android 使用attrs自定义控件步骤:1、在values下新建一个attrs.xml的资源文件(my_attrs.xml)//===》name为引用资源的名称//attr中的name为自定义的名称format为类型//字体颜色//字体大小//字符串2、新建一个类MyAttrsMyView继承View覆写publicMyAttrsMyView(Contextcontext,Attribu…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

步骤:

1、在values下新建一个attrs.xml的资源文件(my_attrs.xml)

    //===》name为引用资源的名称

// attr中的 name为自定义的名称   format 为类型

  // 字体颜色

  //字体大小

   //字符串

2、新建一个类MyAttrsMyView继承 View

覆写public MyAttrsMyView(Context context, AttributeSet attrs)方法

@SuppressLint(“NewApi”)

public MyAttrsMyView(Context context, AttributeSet attrs) {

super(context, attrs);

// TODO Auto-generated constructor stub

mPaint = new Paint();    //定义画笔

imageView = new ImageView(context);   //图片

imageView.setImageResource(R.drawable.ww);  //加载图片资源

TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.My_attrs);   //获取自定义的attrs中的资源

float textsize = a.getDimension(R.styleable.My_attrs_TextSize, 40);

int c = a.getColor(R.styleable.My_attrs_TextColor, 0x990000FF);

s = a.getString(R.styleable.My_attrs_Text);

mPaint.setColor(c);

mPaint.setTextSize(textsize);

a.recycle(); //结束标记

}

@Override

protected void onDraw(Canvas canvas) {

// TODO Auto-generated method stub

super.onDraw(canvas);

//canvas.drawRect(new Rect(10, 10, 280, 200), mPaint);

//((BitmapDrawable)imageView.getDrawable()).getBitmap() ;将imageview转换成bitmap

canvas.drawBitmap(((BitmapDrawable)imageView.getDrawable()).getBitmap(), 1, 20, mPaint);

//canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.ww), 10, 10, mPaint);

canvas.drawText(s, 1, 100, mPaint);

}

3、最后一步

第一种写法    在activity中 , 直接new出自定义的类即可

MyView = new MyAttrsMyView(this,null);

setContentView(MyView);

第二种写法    利用xml

1、在xml中 

2、在其根布局 添加声明  :  xmlns:ymy(自己起的名)=”http://schemas.android.com/apk/res/项目的主包名”

3、给自定义的控件中添加attrs 中定义好的属性  :  ymy:Text = “顺丰快递”

xmlns:ymy=”http://schemas.android.com/apk/res/com.ming”

android:layout_width=”match_parent”

android:layout_height=”match_parent”

android:orientation=”vertical” >

android:layout_width=”400dp”

android:layout_height=”300dp”

ymy:TextColor = “#ABCDEFEF”         ymy:Text = “顺丰快递”         ymy:TextSize = “12sp”         />

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180882.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • oracle的join的用法_oracle分页函数

    oracle的join的用法_oracle分页函数/*关于在join中出现ORA-00918:未明确定义列的解决办法*//*关于join和where表连接问题,需要在使用join时需要使用列的别名,避免相同列名的出现。*/–以下为简要测试过程:–测试对象如下:SQL>select*fromoraking1;IDNAME——————————1oraking2oraking23or…

    2022年10月5日
    2
  • MySQL 索引概览

    MySQL 索引概览前言在SQL优化中,索引是至关重要的一环,能给查询效率带来质的飞跃,但是索引并不是万能的,不合理的索引设计甚至会拖慢查询效率。本文将详细介绍各类索引的定义、用法以及分类,并讨论使用索引时应该权衡的要素。文章目录前言概览索引定义索引优缺点优点缺点索引类型按功能逻辑划分普通索引唯一索引主键索引全文索引按物理实现划分聚集索引(clusteredindex)非聚集索引(non-clusteredindex)按字段个数划分单一索引组合索引最左匹配原则概览索引定义索引是一种专门用于帮助SQL高效获

    2022年6月24日
    27
  • 1MB,1GB,1TB等于多少字节或比特?(理解B与b的区别)「建议收藏」

    1MB,1GB,1TB等于多少字节或比特?(理解B与b的区别)「建议收藏」首先,数据量最小单位比特,bit,(b)即一个比特位为0或1;然后,一个字节,Byte(B)等于8个比特位;1B=8bit.与字节搭配时,K,M,G,T为二进制单位,因为1000与1024相近,即2^10=1K;所以:1KB=1024Byte,所以1MB=10241024=1048576字节1MB=1024KB1GB=1024MB1TB=1024GB与比特搭配时,K,M,…

    2022年5月25日
    79
  • ARM的六大类指令集—LDR、LDRB、LDRH、LDM、STR、STRB、STRH、STM

    ARM的六大类指令集—LDR、LDRB、LDRH、LDM、STR、STRB、STRH、STM汇编指令:LDR、LDRB、LDRH、STR、STRB、STRH

    2022年6月16日
    42
  • STL vector用法介绍

    STL vector用法介绍介绍这篇文章的目的是为了介绍std::vector,如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用,如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使用vector容器,而且应该不会再去使用C类型的动态数组了。 Vector总览vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种

    2022年6月16日
    27
  • python超链接格式_Openpyxl中的超链接样式「建议收藏」

    python超链接格式_Openpyxl中的超链接样式「建议收藏」4个答案:答案0:(得分:1)importopenpyxlfromopenpyxl.stylesimportFont,Color,colors#…#alternative1:sethyperlinkpropertytocelldeflink_1(cell,link,display=None):cell.hyperlink=linkcell.font=…

    2022年7月19日
    113

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号