博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android开发之自定义View(二)
阅读量:6329 次
发布时间:2019-06-22

本文共 2101 字,大约阅读时间需要 7 分钟。

在 中,讲解了最复杂的一种自定义View,本次将剩下的两种讲完~~~ go,go,go

继承原有的控件,在原有控件基础上进行修改,如TextView,这种方式常见且简单。以实现一个显示粗体文本的TextView例子来讲解。

1、自定义属性

2、创建一个类继承自TextView,很简单,内容都是前面讲过的

public class BoldTextView extends TextView{    private TextPaint paint;    public BoldTextView(Context context, AttributeSet attrs)    {        super(context, attrs);        TypedArray params = context.obtainStyledAttributes(attrs,                R.styleable.BoldTextView);        // 得到自定义控件的属性值。        boolean textIsBlod = params.getBoolean(                R.styleable.BoldTextView_textIsBlod, false);        setTextblod(textIsBlod);        params.recycle();    }    // 设置粗体 其实就是将画笔变粗即可    public void setTextblod(boolean textblod)    {        if (textblod)        {            paint = super.getPaint();            paint.setFakeBoldText(true);        }    }}

3、布局

4、运行测试

img_5a2771af06df9da4c0de638bd6f28284.png
自定义View4.png
重新拼装组合,这种方式也比较常见。以实现一个图片文字按钮例子来讲解。

1、自定义属性

2、组合控件布局

3、创建一个类继承自LinearLayout

public class ImgBtn extends LinearLayout{    private TextView title;    private ImageView icon;    public ImgBtn(Context context)    {        super(context);    }    public ImgBtn(Context context, AttributeSet attrs)    {        super(context, attrs);        // 加载布局        LayoutInflater.from(context).inflate(R.layout.diy_view, this, true);        // 找到控件        title = (TextView) findViewById(R.id.title);        icon = (ImageView) findViewById(R.id.icon);        // 设置属性        TypedArray params = context.obtainStyledAttributes(attrs,                R.styleable.ImgBtn);        int resId = params.getResourceId(R.styleable.ImgBtn_imgbtn_icon,                R.drawable.ic_launcher);        // 设置图表        setIcon(resId);        String title = params.getString(R.styleable.ImgBtn_imgbtn_title);        // 设置文本        setTitle(title);        params.recycle();    }    public void setIcon(int resId)    {        icon.setImageResource(resId);    }    public void setTitle(String text)    {        title.setText(text);    }}

3、Activity布局

4、运行测试

img_e4bbd86f4c26ec1888eddc50fd9648d7.png
自定义View5.png

转载地址:http://hnboa.baihongyu.com/

你可能感兴趣的文章
redis 安装
查看>>
SQL some any all
查看>>
电子书下载:Programming Windows Identity Foundation
查看>>
有理想的程序员必须知道的15件事
查看>>
用于测试的字符串
查看>>
财付通和支付宝资料收集
查看>>
PHPCMS V9数据库表结构分析
查看>>
『原创』+『参考』基于PPC的图像对比程序——使用直方图度量
查看>>
理解 IEnumerable 与 IEnumerator
查看>>
NHibernate 2.0 Beta 1 Released和一些工具
查看>>
【每天一个Linux命令】12. Linux中which命令的用法
查看>>
软件接口数据一致性机制
查看>>
微服务架构介绍和RPC框架对比
查看>>
Debian下使用OpenLDAP 管理端
查看>>
泛型排序器TComparer
查看>>
9个offer,12家公司,35场面试,从微软到谷歌,应届计算机毕业生的2012求职之路...
查看>>
创建符合标准的、有语意的HTML页面——ASP.NET 2.0 CSS Friendly Control Adapters 1.0发布...
查看>>
Adobe驳斥Flash过度耗电论 称HTML5更耗电
查看>>
No!No!No! It's not fashion!
查看>>
艰困之道中学到的经验教训
查看>>