Android简单的自定义控件

我们所用的所有控件都是直接或间接继承自View的,所用的所有布局都是直接或间接继承自ViewGroup的.View是Android中最基本的一种UI组件,它可以在屏幕上绘制一块矩形区域,并能响应这块区域的各种事件,因此,我们使用的各种控件其实就是在View的基础之上又添加了各自特有的功能。而ViewGroup则是一种特殊的View,它可以包含很多子View和子ViewGroup,是一个用于放置控件和布局的容器。

1.引入布局

main xml


android:layout_width="match_parent"

android:layout_height="match_parent">

title.xhml


android:orientation="vertical"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@drawable/title_bg"

>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/title_back"

android:layout_gravity="center"

android:layout_margin="5dp"

android:background="@drawable/back_bg"

android:text="Back"

android:textColor="#fff"

/>

android:layout_width="0dp"

android:layout_height="wrap_content"

android:id="@+id/title_text"

android:layout_gravity="center"

android:layout_weight="1"

android:gravity="center"

android:text="Title Text"

android:textColor="#fff"

android:textSize="24sp"

/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:id="@+id/title_edit"

android:layout_gravity="center"

android:layout_margin="5dp"

android:background="@drawable/back_bg"

android:text="Edit"

android:textColor="#fff"

/>

MainActivity.class

@Override

protected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main4_activiyt);

ActionBar actionBar = getSupportActionBar();

if(actionBar !=null){

actionBar.hide();

}

}

这里调用了getSupportActionBar()方法来活动ActionBar的实例,然后在调用ActionBar的hide()方法将标题栏隐藏起来

2.创建自定义控件

引入布局的技巧确实解决了重复编写布局代码的问题.

现在学习如何自定义控件

新建一个class 继承LinearLayout

public TitleLayout(Context context, AttributeSet attrs) {

super(context, attrs);

LayoutInflater.from(context).inflate(R.layout.title, this);

Button titleBack = (Button) findViewById(R.id.title_back);

Button titleEdit = (Button) findViewById(R.id.title_edit);

titleBack.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

((Activity) getContext()).finish();

}

});

titleEdit.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Toast.makeText(getContext(), "You clicked Edit button",

Toast.LENGTH_SHORT).show();

}

});

}

然后把main.xml的代码修改

android:layout_width="match_parent"

android:layout_height="wrap_content"

>




我是一个自学Android和JavaWeb的菜鸟。如果可以Flower一下我的GitHub。感激不尽

https://github.com/FoxconnPeter

你可能感兴趣的:(Android简单的自定义控件)