自定义控件组合仿actionbar控件

我们前面写了6个自定义view的样例,这都是全新自已画的控件。在这个样例中,我们来用几个现有的控件来组合成一个新的控件。

效果图:

我们用二个Button和一个TextView组合来成为一个actionbar,下面先来一个效果图:

关键代码:(1)res/layout/custom_action_bar.xml—-组合控件布局文件<RelativeLayout xmlns:android=""xmlns:tools=""android:layout_width="match_parent"android:layout_height="wrap_content" ><Buttonandroid:id="@+id/button_ok"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/button_ok_click"android:layout_alignParentLeft="true"/><TextViewandroid:id="@+id/title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:visibility="gone"/><Buttonandroid:id="@+id/button_no"android:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@drawable/button_no_click"android:layout_alignParentRight="true"/></RelativeLayout>(2)CustomActionbar.java——自定义组合控件import android.content.Context;import android.util.AttributeSet;import android.view.LayoutInflater;import android.view.View;import android.widget.Button;import android.widget.RelativeLayout;import android.widget.TextView;public class CustomActionbar extends RelativeLayout{private Button button_ok;private Button button_no;private TextView title;private ActionbarClickedListener actionbarClickedListener;public CustomActionbar(Context context) {this(context, null);}public CustomActionbar(Context context, AttributeSet attrs) {this(context, attrs, 0);}public CustomActionbar(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);LayoutInflater.from(context).inflate(R.layout.custom_action_bar, this, true);}protected void onFinishInflate() {super.onFinishInflate();button_ok = (Button) findViewById(R.id.button_ok);button_ok.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {// TODO Auto-generated method stubif (actionbarClickedListener != null) {actionbarClickedListener.onActionbarOKClicked();}}});button_no = (Button) findViewById(R.id.button_no);button_no.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {// TODO Auto-generated method stubif (actionbarClickedListener != null) {actionbarClickedListener.onActionbarCancelClicked();}}});title = (TextView) findViewById(R.id.title);}public void setTitle(int resId){title.setText(resId);title.setVisibility(View.VISIBLE);}public void setActionbarClickedListener(ActionbarClickedListener actionbarClickedListener){this.actionbarClickedListener = actionbarClickedListener;}public interface ActionbarClickedListener {public void onActionbarOKClicked();public void onActionbarCancelClicked();}}(3)res/layout/activity_main.xml——-主文件布局文件

<RelativeLayout xmlns:android=""xmlns:tools=""android:layout_width="match_parent"android:layout_height="wrap_content"><com.example.customviewactionbar.CustomActionbarandroid:id="@+id/customActionbar"android:layout_width="match_parent"android:layout_height="wrap_content"/> </RelativeLayout>

(4)MainActivity.java—–主文件import com.example.customviewactionbar.CustomActionbar.ActionbarClickedListener;import android.os.Bundle;import android.app.Activity;import android.util.Log;public class MainActivity extends Activity implements ActionbarClickedListener{public static final String TAG ="CustomActionbar";private CustomActionbar customActionbar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}private void init() {// TODO Auto-generated method stubcustomActionbar = (CustomActionbar) findViewById(R.id.customActionbar);customActionbar.setActionbarClickedListener(this);//customActionbar.setTitle(getResources().getText(R.string.hello_world));customActionbar.setTitle(R.string.hello_world);}@Overridepublic void onActionbarOKClicked() {// TODO Auto-generated method stubLog.i(TAG,"click_ok");}@Overridepublic void onActionbarCancelClicked() {// TODO Auto-generated method stubLog.i(TAG,"click_cancel");finish();}}组合控件自定义view总结:

1.自定义组合控件得到想要的控件

2.自定义控件,导入布局文件,实现自已想要控件

3.在其它布局文件中使用

源码下载:

参考资料:

1.Android软件开发之 自定义控件

2.android – 自定义(组合)控件 + 自定义控件外观

3.Android UI开发详解之模板控件的复用

,选择逃避,选择被动的去面对生活。

自定义控件组合仿actionbar控件

相关文章:

你感兴趣的文章:

标签云: