如何在TextView for Android中对齐文本?

时间:2013-05-04 16:27:13

标签: android textview

我有png文件似乎:

enter image description here

我想创建TextView,应该是这样的:

enter image description here

这是我到目前为止所做的:

选择器speaker.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" 
        android:drawable="@drawable/speaker_over" />
    <item android:state_enabled="false"
        android:drawable="@drawable/speaker_disabled" />
    <item
         android:drawable="@drawable/speaker_default" />
</selector>

这是TextView

 <TextView
        android:id="@+id/speaker"
        android:background="@drawable/speaker"
        android:text="@string/button_speaker"
        android:gravity="center"
        android:textColor="@drawable/text_incall_button_color"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.94" />

字符串

<string name="button_speaker">Speaker</string>

我不知道如何将我的文字对齐为“右中”+“右边缘”

在xCode for iOS中,它很简单,只需按像素比例左/右添加边距

如何在Android中执行此操作?

5 个答案:

答案 0 :(得分:2)

尝试使用此代码并根据您进行更改。

  <TextView
            android:id="@+id/textView1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:drawableLeft="@drawable/ic_launcher"
            android:gravity="center"
            android:paddingLeft="20dp"
            android:text="Large Text"
            android:textAppearance="?android:attr/textAppearanceLarge" />

答案 1 :(得分:1)

使用以下

android:drawableLeft="@drawable/image"
android:text="@string/text"

仅使用图标作为图片..

使用android:drawableLeft,将drawable绘制到文本的左侧。

更新

然后使用填充

 <TextView
        android:id="@+id/micro"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.94"
        android:background="@drawable/micro_on"
        android:paddingLeft="80dp"
        android:paddingTop="15dp"
        android:text="@string/button_micro"
        android:textColor="@drawable/text_incall_button_color" />

答案 2 :(得分:1)

如果音量图标与背景组合,那么最简单的方法是创建RelativeLayout并将此图像设置为背景。接下来在此TextView中添加RelativeLayout并为TextView提供此属性:

    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:paddingRight="20dp"

这应该有效:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="your_image" >

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_centerVertical="true"
    android:paddingRight="20dp"
    android:text="Speaker" />

</RelativeLayout>

答案 3 :(得分:1)

我在这里使用了imageview作为父级。我使用相对布局在imageview上设置了文本视图。您可以查看下面的快照。如果您可以灵活地使用imageview和textview,可以尝试以下内容。

<?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="match_parent"
 >


<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/back" />

 <TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_alignRight="@+id/imageView1"
    android:layout_marginRight="15dp" or android:paddingLeft="80dp"
    // set padding to desired value
    android:layout_marginTop="25dp"
    android:text="Speaker"
    android:textSize="20dp" />

</RelativeLayout> 

产生快照

enter image description here

答案 4 :(得分:0)

对此设计之王使用android:drawableLeft="@drawable/yourimage"属性 这是关于那个的详细规范...... http://developer.android.com/reference/android/widget/TextView.html#attr_android:drawableLeft

希望这会对你有所帮助。