android自定义title的方法

来源:互联网 发布:淘宝老店可以删差评吗 编辑:程序博客网 时间:2024/05/16 09:31
 android的activity默认是有ActionBar的,如果要实现自己的title,可以将ActionBar删除,需要在activity的theme中添加这样的style:
<style name="settingsActivity" >
         <item name="android:windowActionBar">false</item>
         <item name="android:windowNoTitle">false</item>
         。。。。。。
</style>

然后在Activity的onCreate()函数中调用requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

这表示我需要自己定制activity的title。注意,这个调用要在setContentView()之前,否则会报错。
然后在setContentView()之后调用  getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,  R.layout.my_title_bar);
这里的R.layout.my_title_bar就是我们想要定制的布局。
我们可以通过findViewById取到R.layout.my_title_bar这个布局中我们想要设置的控件,然后绑定这些控件相关的操作。
这样就可以实现我们的自定义title了。
下面是我写的一个例子:

java代码如下:

public class DisplaySettings extends PreferenceActivity {

private final static String TAG = "DisplaySettings";

ImageView mBackBtn;

@Override

public void onCreate(Bundle savedInstanceState) {

           requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);

           super.onCreate(savedInstanceState);

           setContentView(R.layout.fragment_display);

           setupTitle();

}

public void setupTitle() {

           getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,

                             R.layout.my_title_bar);

           mBackBtn = (ImageView) findViewById(R.id.left_icon);

           TextView mTitle = (TextView) findViewById(R.id.title);

           mBackBtn.setOnClickListener(new OnClickListener(){

                    @Override

                    public void onClick(View v){

                             finish();

                    }

           });

           mTitle.setText(R.string.main_display);

}

my_title_bar.xml的定义如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:background="#00000000"

    android:orientation="horizontal" >    

<TextView

            android:id="@+id/title"

            android:layout_width="match_parent"

            android:layout_height="match_parent"

            android:layout_gravity="center"

            android:ellipsize="end"

            android:gravity="center"

            android:singleLine="true"

            android:textColor="#FFFFFFFF"

            android:textSize="32sp" />

    <LinearLayout

        android:layout_width="wrap_content"

        android:layout_height="76dip"

        android:orientation="horizontal" 

        android:layout_alignParentRight="true"

        android:layout_marginRight="20dp"

        android:paddingRight="20dp">

        <ImageView

            android:id="@+id/network_indication"

            android:layout_width="wrap_content"

            android:layout_height="match_parent"

            android:layout_marginRight="5dp"

            android:layout_gravity="center_vertical"

            android:focusable="false"

            android:src="@drawable/wlandisable_normal"

            android:gravity="center_vertical" />   

        <my.widget.SettingsDigitalClock

            android:id="@+id/time"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:layout_gravity="center"

            android:ellipsize="end"

            android:gravity="center"

            android:singleLine="true"

            android:textColor="#FFFFFFFF"

            android:textSize="20sp" />    

    </LinearLayout>

</RelativeLayout>

0 0
原创粉丝点击