Android 之 自定义控件用法介绍

[size=large][color=red][b]自定义效果:实现:图片和文字混合[/b][/color][/size]

[size=medium][color=orange][b]首先创建需要组合的子布局:[/b][/color][/size]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal" >

<ImageView
android:id="@+id/myimage"
android:layout_width="30dp"
android:layout_height="30dp" />

<TextView
android:id="@+id/mytext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确定" />

</LinearLayout>


[size=small][color=red][b]编写代码,为自定义控件设置值:[/b][/color][/size]
package com.example.userdefinedview;

import android.content.Context;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

/**
* 自定义 组建的实现 --
* 功能:复合组件
* @author Administrator
*
*/
public class MyLinearLayout extends LinearLayout {

// 声明对象属性
private ImageView myimage;
private TextView mytext;

public MyLinearLayout(Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater.from(context).inflate(R.layout.my_linearlayout,this,true); //视图容器装载
myimage = (ImageView) findViewById(R.id.myimage); // 获取对象
mytext = (TextView) findViewById(R.id.mytext);
}

/**
* 设置图片资源
* @param resID 资源ID
*/
public void setImageViewImageResource(int resID){
myimage.setImageResource(resID);
}

/**
* 设置文本内容
* @param text 字符信息
*/
public void setMyTextText(String text){
mytext.setText(text);
}

}


[size=medium][b]
主布局文件:[/b][/size]
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >

<com.example.userdefinedview.MyLinearLayout
android:id="@+id/my1"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:background="#ff00ff"
/>

<com.example.userdefinedview.MyLinearLayout
android:layout_marginLeft="20dp"
android:id="@+id/my2"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:background="#ff00ff"
/>

</LinearLayout>



[size=medium][color=darkblue][b]主程序入口代码:[/b][/color][/size]
package com.example.userdefinedview;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Toast;

public class MainActivity extends Activity {

private MyLinearLayout my1;
private MyLinearLayout my2;

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

my1 = (MyLinearLayout) findViewById(R.id.my1);
my2 = (MyLinearLayout) findViewById(R.id.my2);

my1.setImageViewImageResource(R.drawable.a1);
my1.setMyTextText("确定");

my2.setImageViewImageResource(R.drawable.a6);
my2.setMyTextText("取消");

my1.setOnClickListener(new OnClickListener() {

public void onClick(View v) {

Toast.makeText(MainActivity.this, "点击了确定",Toast.LENGTH_LONG).show();
}
});
my2.setOnClickListener(new OnClickListener() {

public void onClick(View v) {
Toast.makeText(MainActivity.this, "点击了取消",Toast.LENGTH_LONG).show();
}
});
}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值