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)
上一篇 2022年10月17日 下午8:00
下一篇 2022年10月17日 下午8:00


相关推荐

  • MFC的OnMouseMove移动位置和OnMouseWheel缩放实现

    MFC的OnMouseMove移动位置和OnMouseWheel缩放实现1 基本作用 OnMouseMove 响应鼠标移动时间 OnMouseWheel 响应鼠标中键的滚动 nbsp 2 参数说明 afx msgvoidOnMou UINTnFlags CPointpoint nFlags 说明 指示虚拟按键是否按下 此参数可以是任何下列值的组合 MK CONTROL nbsp 当 CTRL 键按下时 MK LBUTT

    2026年3月26日
    2
  • 2021 phpstorm永久激活码【在线注册码/序列号/破解码】

    2021 phpstorm永久激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月20日
    78
  • pom文件的 spring-boot-maven-plugin报红

    pom文件的 spring-boot-maven-plugin报红报红是因为缺少版本号 后面加上即可 version 2 3 5 RELEASE version build plugins plugin groupId org springframew boot groupId artifactId spring boot maven p artifactId plugin plugins build

    2026年3月18日
    2
  • ubuntu安装超详细教程_执手锁怎么安装

    ubuntu安装超详细教程_执手锁怎么安装Python进阶者18-06-1916:21前几天带大家一起安装了Ubuntu14.04系统,没来得及上车的伙伴可以戳这篇文章:手把手教你在VMware虚拟机中安装Ubuntu14.04系统。今天小编带大家一起在Ubuntu14.04中安装Pycharm,具体的教程如下。1、首先在主目录下创建software文件夹,此时该文件夹为空文件夹。这个文件夹下用于放置安装软件,当然这…

    2022年8月25日
    7
  • QQ/微信表情代码表

    QQ/微信表情代码表emoji 表情有很多种版本 其中包括 Unified DoCoMo KDDI Softbank 和 Google 并且不同版本用于表示同一符号表情的 Unicode 代码也不相同 1 Emoji 表情代码表之 SoftBank 版本 2 Emoji 表情代码表之 Unified 版本此章节图片是从别处 copy 而来 仅供自己查看

    2026年3月18日
    2
  • Python连接数据库的类

    Python连接数据库的类文章目录概述 python 连接 MySQLpython 连接 PostgreSQL 概述一般来说 在使用 python 连接数据库的时候 喜欢先定义一个类 方便后续的使用类 Class 用来描述具有相同的属性和方法的对象的集合 它定义了该集合中每个对象所共有的属性和方法 对象是类的实例 可以比喻为一个 Word 的模板 每次创建一个新的 Word 文件时 可以使用这个模板 对于经常使用的场景 非常方便连接数据库执行命令然后返回结果最后再断开连接 在写脚本时有时会经常做到 所以定义一个类 python 连接 MySQL

    2026年3月18日
    1

发表回复

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

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