Android--(13)--Android自定义实现actionbar实现微信标题栏

昨天看了下actionbar的使用,今天来实现自定义的标题栏实现
在android的开发中有时我们需要更个性化的标题栏,而不仅仅是系统预定义的图标加软件名,同时有时候我们需要在标题栏中实现更多功能,如添加按钮响应用户点击。这就要求我们实现自定义标题栏。下面以微信的标题栏为例:

微信界面的标题栏:

step 1:写标题栏布局文件
新建一个布局文件titleBar.xml文件:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:background="#434343"
 6     >
 7     
 8     <TextView
 9         android:id="@+id/barText"
10         android:layout_alignParentLeft="true"
11         android:layout_width="wrap_content"
12         android:layout_height="wrap_content"
13         android:textColor="#FFFFFF"
14         android:layout_centerVertical="true"
15         
16         android:textSize="20sp"
17         android:layout_marginLeft="5dp"
18         android:text="微信(4)"
19         />
20 
21     <ImageView
22         android:id="@+id/barAdd"
23         android:layout_width="wrap_content"
24         android:layout_height="wrap_content"
25         android:src="@android:drawable/ic_menu_add"
26         android:layout_alignParentRight="true"
27         android:layout_marginRight="10dp"
28         android:layout_centerVertical="true"
29         />
30     
31      <ImageView
32         android:id="@+id/barSearch"
33         android:layout_width="wrap_content"
34         android:layout_height="wrap_content"
35         android:src="@android:drawable/ic_menu_search"
36         android:layout_toLeftOf="@+id/barAdd"
37         android:layout_marginRight="20dp"
38         android:layout_centerVertical="true"
39         />
40 </RelativeLayout>

step2:在源文件OnCreat中添加:设置titleBar.xml为标题栏布局

     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
         setContentView(R.layout.main);
         //设置标题布局为titlebar
         getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);
 }

step3:定义标题栏的风格

在values新建titleStyle.xml:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <style name="MyStyle" parent="android:Theme.Light">
        <item name="android:windowTitleSize">50dp</item><!-- //设置宽度 -->
        <item name="android:windowTitleBackgroundStyle">@style/titleColor</item>//设置背景风格,否则可能有边框
    </style>
    <style name="titleColor">
         <item name="android:color">#434343</item>//设置背景色
    </style>

</resources>

在AndroidManifest.xml中修改配置:

在application中添加:
    android:theme="@style/MyStyle"

step4:添加点击处理:
在修改源文件为:

 public class WeixinActivity extends Activity implements OnClickListener{
      /** Called when the activity is first created. */
      public ImageView addBtn;
      public ImageView searchBtn;
      @Override
      public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
         requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
         setContentView(R.layout.main);
         //设置标题布局为titlebar
                  getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.titlebar);

         addBtn=(ImageView)this.findViewById(R.id.barAdd);
         searchBtn=(ImageView)this.findViewById(R.id.barSearch);

         addBtn.setOnClickListener(this);
         searchBtn.setOnClickListener(this);

  }

     @Override
     public void onClick(View v) {
         // TODO Auto-generated method stub
         switch(v.getId()){
         case R.id.barAdd:Toast.makeText(WeixinActivity.this, "你点击了添加", Toast.LENGTH_SHORT).show();break;
         case R.id.barSearch:Toast.makeText(WeixinActivity.this, "你点击了搜索", Toast.LENGTH_SHORT).show();break;
         default:break;
         }
    }
 }

希望对初学者有用,自做笔记使用;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值