android自定义控件实例
来源:互联网 发布:显示器淘宝 编辑:程序博客网 时间:2024/05/18 04:01
很多时候android常用的控件不能满足我们的需求,那么我们就需要自定义一个控件了。今天做了一个自定义控件的实例,来分享下。
首先定义一个layout实现按钮内部布局:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
LinearLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
android:orientation
=
"horizontal"
>
<
ImageView
android:id
=
"@+id/imageView1"
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:layout_gravity
=
"center_vertical"
android:paddingBottom
=
"5dip"
android:paddingLeft
=
"40dip"
android:paddingTop
=
"5dip"
android:src
=
"@drawable/right_icon"
/>
<
TextView
android:id
=
"@+id/textView1"
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:layout_gravity
=
"center_vertical"
android:layout_marginLeft
=
"8dip"
android:text
=
"确定"
android:textColor
=
"#000000"
/>
</
LinearLayout
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public
class
ImageBtn
extends
LinearLayout {
private
ImageView imageView;
private
TextView textView;
public
ImageBtn(Context context) {
super
(context);
// TODO Auto-generated constructor stub
}
public
ImageBtn(Context context, AttributeSet attrs) {
super
(context, attrs);
// TODO Auto-generated constructor stub
LayoutInflater inflater=(LayoutInflater)
context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.imagebtn,
this
);
imageView=(ImageView) findViewById(R.id.imageView1);
textView=(TextView)findViewById(R.id.textView1);
}
/**
* 设置图片资源
*/
public
void
setImageResource(
int
resId) {
imageView.setImageResource(resId);
}
/**
* 设置显示的文字
*/
public
void
setTextViewText(String text) {
textView.setText(text);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
LinearLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
android:orientation
=
"horizontal"
>
<
cn.com.karl.view.ImageBtn
android:id
=
"@+id/btn_right"
android:layout_height
=
"wrap_content"
android:layout_width
=
"wrap_content"
android:background
=
"@drawable/btn"
/>
<
cn.com.karl.view.ImageBtn
android:id
=
"@+id/btn_error"
android:layout_marginLeft
=
"5dp"
android:layout_height
=
"wrap_content"
android:layout_width
=
"wrap_content"
android:background
=
"@drawable/btn"
/>
</
LinearLayout
>
1
2
3
4
5
6
7
8
9
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
selector
xmlns:android
=
"http://schemas.android.com/apk/res/android"
>
<
item
android:state_focused
=
"true"
android:state_pressed
=
"false"
android:drawable
=
"@drawable/btn_normal"
></
item
>
<
item
android:state_pressed
=
"true"
android:drawable
=
"@drawable/btn_white"
></
item
>
<
item
android:state_checked
=
"true"
android:drawable
=
"@drawable/btn_white"
></
item
>
<
item
android:state_focused
=
"false"
android:state_pressed
=
"false"
android:drawable
=
"@drawable/btn_normal"
></
item
>
</
selector
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public
class
IdentifyButtonActivity
extends
Activity {
private
ImageBtn imageBtn1;
private
ImageBtn imageBtn2;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super
.onCreate(savedInstanceState);
setContentView(R.layout.identifybutton);
imageBtn1=(ImageBtn)
this
.findViewById(R.id.btn_right);
imageBtn2=(ImageBtn)
this
.findViewById(R.id.btn_error);
imageBtn1.setTextViewText(
"确定"
);
imageBtn2.setTextViewText(
"取消"
);
imageBtn1.setImageResource(R.drawable.right_icon);
imageBtn2.setImageResource(R.drawable.error_icon);
imageBtn1.setOnClickListener(
new
View.OnClickListener() {
public
void
onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(),
"点击的正确按钮"
,
1
).show();
}
});
imageBtn2.setOnClickListener(
new
View.OnClickListener() {
public
void
onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(),
"点击的错误按钮"
,
1
).show();
}
});
}
}
0 0
- android自定义控件实例
- android自定义控件实例
- android自定义控件实例
- android自定义控件实例
- android自定义控件实例
- android自定义控件实例
- android自定义控件实例
- android自定义控件实例
- android 自定义控件实例
- android自定义控件实例
- android自定义控件实例
- android自定义控件实例 --控件
- android 自定义控件方法以及实例
- Android自定义控件下拉刷新实例代码
- android自定义控件实例(一) 上下滑屏控件
- Winform自定义控件实例
- Winform自定义控件实例
- Winform自定义控件实例
- js中使用正则表达式去除字符串前后空格
- ocp-v13-685
- 【一天一个shell命令】好管家-历史信息-history
- 图像处理:显著性区域检测总结(二)
- iOS WKWebView
- android自定义控件实例
- iOS CABasicAnimation 缩放动画
- LibRTMP源代码分析8:发送消息
- 关联,聚合,组合的区别及C++实现
- 解决连接MySql速度慢的方法
- Android文件的上传
- SQLServer 不执行的条件分支却消耗时间!求解…
- /usr/local/bin/memcached: error while loading shared libraries: libevent-1.3.so.1: cannot open share
- java.sql.SQLException: Communication failure during handshake. Is there a server running on localhos