如何在android中创建文本视图中心?

时间:2014-10-02 06:24:46

标签: android custom-action

我正在制作一个动作栏,我设计了一个自定义操作栏但是该客户操作栏中的问题我使用了一个文本视图,我需要它作为中心。 这是我的自定义操作栏xml代码 -

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:gravity="center_horizontal"
android:layout_height="50dp"
 >
<TextView
    android:id="@+id/title_text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_gravity="center"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#000000"
    android:textSize="20sp"
    android:text="@string/app_name"
     />
  </LinearLayout>

这是我的java代码,用于启用该活动的自定义操作栏。

ActionBar mActionBar = getActionBar();
    mActionBar.setDisplayShowHomeEnabled(true);
    mActionBar.setDisplayShowTitleEnabled(false);
    LayoutInflater mInflater = LayoutInflater.from(this);
    View mCustomView = mInflater.inflate(R.layout.customactionbar, null);
    TextView mTitleTextView = (TextView) mCustomView.findViewById(R.id.title_text);
    getActionBar().setBackgroundDrawable(
            new ColorDrawable(Color.parseColor("#f8f8f8")));
    Typeface fontt = Typeface.createFromAsset(getAssets(), "helvetica.ttf");
    mTitleTextView.setTypeface(fontt);
    mActionBar.setCustomView(mCustomView);
    mActionBar.setDisplayShowCustomEnabled(true);
    getActionBar().setIcon(
               new ColorDrawable(getResources().getColor(android.R.color.transparent)));

5 个答案:

答案 0 :(得分:1)

您可以在xml中使用Relative Layout尝试此操作

 <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:layout_width="match_parent"
          android:layout_height="50dp"
          android:layout_gravity="center"
          android:orientation="vertical">

      <TextView
          android:id="@+id/title_text"
          android:layout_width="fill_parent"
          android:layout_height="wrap_content"
          android:gravity="center"
          android:layout_gravity="center"
          android:layout_centerHorizontal="true"
          android:textAppearance="?android:attr/textAppearanceLarge"
          android:textColor="#000000"
          android:textSize="20sp"
          android:text="@string/app_name"/>
   </RelativeLayout>

答案 1 :(得分:0)

尝试将布局更改为:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="50dp"
android:gravity="center_horizontal" >

<TextView
    android:id="@+id/title_text"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:text="@string/app_name"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="#000000"
    android:textSize="20sp" />

希望这会奏效。

答案 2 :(得分:0)

我是Android新手,但我认为它有效

你需要什么

1)relativeLayout代替LinearLayout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:gravity="center_horizontal"
android:layout_height="50dp"
 >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="30dp"
        android:text="@string/app_name"
        android:textColor="#000000"
        android:typeface="serif" />

  </RelativeLayout>

enter image description here

答案 3 :(得分:0)

为什么使用布局?为什么在customactionbar.xml文件中没有android:gravity="center"且宽度和高度设置为match_parent的单个TextView?

答案 4 :(得分:0)

尝试在TextView中添加三个属性,删除任何其他重力属性

    android:gravity="center"
    android:layout_centerHorizontal="true"
    android:layout_centerVertical="true"

希望有所帮助