粗谈自定义控件

来源:互联网 发布:大连美工培训班哪里好 编辑:程序博客网 时间:2024/05/17 08:02


  1. > 谷歌工程师们为Android系统定义了许许多多的控件,例如TextView,Button。 然而Android系统的控件并不能满足开发的需要。尤其是做功能复

 杂界面简洁漂亮的控件,Android系统的控件就显得格外捉襟见肘。 <br>


1. 列表内容 针对这种问题,为了满足用户需求,就需要自定义控件。
自定义控件分为这么几种。
1 首先第一种:利用Android定义好的控件进行组合,定义出满自己需要的页面。组合已有的控件实现
1)在xml布局里摆放好空间的位置。
2)给指定控件添加点击事件 3)根据业务逻辑,执行动画(旋转动画: 补间动画)
4)菜单按钮的获取。
第一种方式比较容易实现,这里就不多作介绍了。
2 第二种:完全自定义控件
1)首先需要自定义一个类继承View类。 public class AtyHomeBtnItem extends LinearLayout {

private static final String NAME_SPACE = “http://schemas.android.com/apk/res/com.mobile.guards”;

public static ImageView imageView;
private static View view;
private String mItemText;
private int mImg;

public AtyHomeBtnItem(Context context) {
this(context,null);
}

public AtyHomeBtnItem(Context context, AttributeSet attrs) {
this(context, attrs,0);
}

public AtyHomeBtnItem(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);

/*将设置界面的一个条目转换成View对象,
* 直接添加到AtyHomeBtnItem中对应的view
* */
View.inflate(context,R.layout.aty_home_item,this);
//以一种加载布局的方法

//view = View.inflate(context,R.layout.aty_home_item,this);
//imageView = (ImageView) view.findViewById(R.id.id_iv_clear_virus_img);
TextView textView = (TextView)findViewById(R.id.id_tv_clear_cache);
ImageView imageView = (ImageView) findViewById(R.id.id_iv_clear_virus_img);
//this.addView(view);

//通过命名空间+属性名称获取属性值
mItemText = attrs.getAttributeValue(NAME_SPACE,”text”);
mImg = attrs.getAttributeResourceValue(NAME_SPACE,”src”,0);

//设置条目名称
imageView.setImageResource(mImg);
textView.setText(mItemText);
} }
2) 然后在需要添加该控件的布局文件中添加该控件,注意:必须通过包含全包名的信息添加到类当中去。com.mobile.guards是该控件类所在的包,AtyHomeBtnItem是这个控件的名称

0 0
原创粉丝点击