本文共 2101 字,大约阅读时间需要 7 分钟。
在 中,讲解了最复杂的一种自定义View,本次将剩下的两种讲完~~~ go,go,go
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、运行测试
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、运行测试
转载地址:http://hnboa.baihongyu.com/