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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • c语言printf()输出格式大全

    c语言printf()输出格式大全1.转换说明符     %a(%A)    浮点数、十六进制数字和p-(P-)记数法(C99)     %c            字符     %d            有符号十进制整数     %f             浮点数(包括float和doulbe)     %e(%E)    浮点数指数输出[e-(E-)记数法]     %g(%G)    浮点数不显无…

    2022年7月24日
  • 火山图标记基因_火山地形图

    火山图标记基因_火山地形图现在很多文章会要求火山图中显示某一个基因名称,或者是某一些基因的名称,这时候我们应该怎么做呢?很多人会选择使用AI或者PS来做,在这里我介绍的是,如何用R绘制这样的图加载R包library(ggpubr)library(ggthemes)如果没有安装,可以使用下面的代码进行安装install.packages(‘ggthemes’)install.packages(‘ggpubr’)…

    2022年10月21日
  • 工业大数据漫谈5:工业大数据案例(上)

    工业大数据漫谈5:工业大数据案例(上)今天,整理了一些工业大数据的相关案例,看看各家企业是如何成功实施工业大数据的。    1、能够实现全生产过程的信息透明化的案例    通过采用集成自动化与驱动解决方案,能够显著提高生产效率和灵活性。原东德玻璃制造商f|glass就是一个很好的实例。它的工厂可以算得上是全世界最先进、最节能的工厂之一了。该工厂采用了一套集成自动化解决方案、一个先进的能源管理系统以及一个创新

    2022年6月5日
  • Wol 网络远程唤醒技术,通过TP-LINK路由器远程一键开启电脑

    Wol 网络远程唤醒技术,通过TP-LINK路由器远程一键开启电脑文章目录Wol网络远程唤醒技术,通过TP-LINK路由器远程一键开启电脑1、远程唤醒简介2、需要以下唤醒条件3、环境和准备工作4、配置路由器,让路由器接收你的远程开机命令5、测试配置的网络是否能够正常收到开机信号6、装个teamviewer,开机自启动,实现远程开机和远程控制Wol网络远程唤醒技术,通过TP-LINK路由器远程一键开启电脑1、远程唤醒简介远程唤醒技术(WOL,Wake-…

    2022年6月2日
  • 头歌c语言实训作业题解

    头歌c语言实训作业题解头歌c语言实训作业题解顺序结构程序设计1.加法运算2.不使用第3个变量,实现两个数的对调3.用宏定义常量4.数字分离5.计算总成绩和平均成绩6.求三角形面积7.立体几何计算题8.计算两个正整数的最大公约数选择结构程序设计选择结构程序设计进阶顺序结构程序设计1.加法运算本关任务:写一个加法程序,输入整数a,b,输出他们的和。解题代码:#include<stdio.h> intmain(void) { inta,b,c;//Pleaseinputa

    2022年5月12日
  • Linux多线程编程小结

    Linux多线程编程小结

    2021年12月2日

发表回复

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

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