android 中自定义组件

来源:互联网 发布:推广和美工工作计划 编辑:程序博客网 时间:2024/05/22 00:22

1、在开发中我们难免会遇到一些android 自带的组件无法实现的功能,这时候就需要我们重新去定义这些组件,实例实现了一个复合组件(ImageView 与 TextView )的组合,下面就是截图

public class ImageAddText extends LinearLayout implements View.OnClickListener {    private ImageView img = null;    private TextView name = null;    public ImageAddText(Context context) {        this(context, null);    }    public ImageAddText(Context context, AttributeSet attrs) {        super(context, attrs);        LayoutInflater vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);        vi.inflate(R.layout.custom_image_textview_activity, this, true);        this.img = (ImageView) this.findViewById(R.id.img);        this.name = (TextView) this.findViewById(R.id.name);        this.img.setOnClickListener(this);    }    public void setText(String str, int id) {        this.img.setBackgroundResource(id);        this.name.setText(str);    }    @Override    public void onClick(View v) {        new AlertDialog.Builder(MainApplication.getMainActivity()).setMessage("测试").create().show();    }}

custom_image_textview_activity.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:gravity="center"    android:orientation="vertical" >    <ImageView        android:id="@+id/img"        android:layout_width="wrap_content"        android:layout_height="wrap_content" />    <TextView        android:id="@+id/name"        android:layout_width="wrap_content"        android:layout_height="wrap_content" /></LinearLayout>

 2、这样定义好了之后,我们就可以在程序中直接引用了,跟用普通组件没什么区别

原创粉丝点击