- 论坛徽章:
- 0
|
自定义控件
定义一个/res/layout/control.xml
Xml代码- 1.<?xml version="1.0" encoding="utf-8"?>
- 2.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- 3. android:orientation="horizontal"
- 4. android:layout_width="fill_parent"
- 5. android:layout_height="fill_parent"
- 6. >
- 7.<ImageView
- 8. android:layout_width="wrap_content"
- 9. android:layout_height="wrap_content"
- 10. android:id="@+id/iv"
- 11. android:src="@drawable/icon"
- 12. android:paddingTop="5dip"
- 13. android:paddingBottom="5dip"
- 14. android:paddingLeft="5dip"
- 15. android:layout_gravity="center_vertical"
- 16. />
- 17.<TextView
- 18. android:layout_height="wrap_content"
- 19. android:text="确定"
- 20. android:textColor="#000000"
- 21. android:id="@+id/tv"
- 22. android:layout_marginLeft="8dip" android:layout_marginRight="10dip"
- 23. android:layout_gravity="center_vertical" android:layout_width="wrap_content"/>
- 24.</LinearLayout>
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <ImageView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/iv"
- android:src="@drawable/icon"
- android:paddingTop="5dip"
- android:paddingBottom="5dip"
- android:paddingLeft="5dip"
- android:layout_gravity="center_vertical"
- />
- <TextView
- android:layout_height="wrap_content"
- android:text="确定"
- android:textColor="#000000"
- android:id="@+id/tv"
- android:layout_marginLeft="8dip" android:layout_marginRight="10dip"
- android:layout_gravity="center_vertical" android:layout_width="wrap_content"/>
- </LinearLayout>
复制代码 自定义控件的类ImageBt.java
Java代码- 1.package com.notice.ib;
- 2.
- 3.import com.control.R;
- 4.
- 5.import android.content.Context;
- 6.import android.util.AttributeSet;
- 7.import android.view.LayoutInflater;
- 8.import android.widget.ImageView;
- 9.import android.widget.LinearLayout;
- 10.import android.widget.TextView;
- 11.
- 12.public class ImageBt extends LinearLayout {
- 13.
- 14. private ImageView iv;
- 15. private TextView tv;
- 16.
- 17. public ImageBt(Context context) {
- 18. this(context, null);
- 19. }
- 20.
- 21. public ImageBt(Context context, AttributeSet attrs) {
- 22. super(context, attrs);
- 23. // 导入布局
- 24. LayoutInflater.from(context).inflate(R.layout.control, this, true);
- 25. iv = (ImageView) findViewById(R.id.iv);
- 26. tv = (TextView) findViewById(R.id.tv);
- 27. }
- 28.
- 29. /**
- 30. * 设置图片资源
- 31. */
- 32. public void setImageResource(int resId) {
- 33. iv.setImageResource(resId);
- 34. }
- 35.
- 36. /**
- 37. * 设置显示的文字
- 38. */
- 39. public void setTextViewText(String text) {
- 40. tv.setText(text);
- 41. }
- 42.
- 43.}
- package com.notice.ib;
-
- import com.control.R;
- import android.content.Context;
- import android.util.AttributeSet;
- import android.view.LayoutInflater;
- import android.widget.ImageView;
- import android.widget.LinearLayout;
- import android.widget.TextView;
-
- public class ImageBt extends LinearLayout {
-
- private ImageView iv;
- private TextView tv;
-
- public ImageBt(Context context) {
- this(context, null);
- }
-
- public ImageBt(Context context, AttributeSet attrs) {
- super(context, attrs);
- // 导入布局
- LayoutInflater.from(context).inflate(R.layout.control, this, true);
- iv = (ImageView) findViewById(R.id.iv);
- tv = (TextView) findViewById(R.id.tv);
- }
-
- /**
- * 设置图片资源
- */
- public void setImageResource(int resId) {
- iv.setImageResource(resId);
- }
-
- /**
- * 设置显示的文字
- */
- public void setTextViewText(String text) {
- tv.setText(text);
- }
-
- }
复制代码 main.xml
Xml代码- 1.<?xml version="1.0" encoding="utf-8"?>
- 2.<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- 3. android:orientation="vertical"
- 4. android:layout_width="fill_parent"
- 5. android:layout_height="fill_parent"
- 6. >
- 7. <RelativeLayout
- 8. android:orientation="horizontal"
- 9. android:layout_width="fill_parent"
- 10. android:layout_height="wrap_content"
- 11. android:layout_gravity="center_vertical"
- 12. >
- 13. <com.notice.ib.ImageBt
- 14. android:id="@+id/bt_confirm"
- 15. android:layout_height="wrap_content"
- 16. android:layout_width="wrap_content"
- 17. android:layout_alignParentBottom="true"
- 18. android:background="#FFFFFF"
- 19. android:clickable="true"
- 20. android:focusable="true"
- 21. />
- 22. <com.notice.ib.ImageBt
- 23. android:id="@+id/bt_cancel"
- 24. android:layout_toRightOf="@id/bt_confirm"
- 25. android:layout_height="wrap_content"
- 26. android:layout_width="wrap_content"
- 27. android:layout_alignParentBottom="true"
- 28. android:background="#FFFFFF"
- 29. android:clickable="true"
- 30. android:focusable="true"
- 31. android:layout_marginLeft="10px"
- 32. />
- 33. </RelativeLayout>
- 34.</LinearLayout>
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <RelativeLayout
- android:orientation="horizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- >
- <com.notice.ib.ImageBt
- android:id="@+id/bt_confirm"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_alignParentBottom="true"
- android:background="#FFFFFF"
- android:clickable="true"
- android:focusable="true"
- />
- <com.notice.ib.ImageBt
- android:id="@+id/bt_cancel"
- android:layout_toRightOf="@id/bt_confirm"
- android:layout_height="wrap_content"
- android:layout_width="wrap_content"
- android:layout_alignParentBottom="true"
- android:background="#FFFFFF"
- android:clickable="true"
- android:focusable="true"
- android:layout_marginLeft="10px"
- />
- </RelativeLayout>
- </LinearLayout>
复制代码 主Activity类
Java代码- 1.package com.control;
- 2.
- 3.import android.app.Activity;
- 4.import android.os.Bundle;
- 5.import android.view.View;
- 6.import android.view.View.OnClickListener;
- 7.
- 8.import com.notice.ib.ImageBt;
- 9.
- 10.public class ControlActivity extends Activity {
- 11. private ImageBt ib1;
- 12. private ImageBt ib2;
- 13. /** Called when the activity is first created. */
- 14. @Override
- 15. public void onCreate(Bundle savedInstanceState) {
- 16. super.onCreate(savedInstanceState);
- 17. setContentView(R.layout.main);
- 18.
- 19. ib1 = (ImageBt) findViewById(R.id.bt_confirm);
- 20. ib2 = (ImageBt) findViewById(R.id.bt_cancel);
- 21.
- 22. ib1.setTextViewText("确定");
- 23. ib1.setImageResource(R.drawable.icon);
- 24. ib2.setTextViewText("取消");
- 25. ib2.setImageResource(R.drawable.icon);
- 26.
- 27. ib1.setOnClickListener(new OnClickListener() {
- 28.
- 29. @Override
- 30. public void onClick(View v) {
- 31. //在这里可以实现点击事件
- 32. }
- 33. });
- 34. }
- 35.}
复制代码 |
|