2013-05-04 46 views
0

我有png文件看起来像:如何在TextView for Android中对齐文本?

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中执行此操作?

回答

1

使用以下

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

仅使用图标作为图像..

通过使用android:drawableLeft,可提拉要被绘制到文本的左侧。

更新:

使用填充然后

<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" /> 
+0

不行的,它挤压我的BG图像 – 2013-05-04 16:41:08

+0

仅使用图标,而不是完整的矩形图像..和作为背景设置,另一部分为梯度形状 – stinepike 2013-05-04 16:42:20

+0

,但如果你想用你的当前图像,然后我认为唯一的方法是使用填充左边 – stinepike 2013-05-04 16:43:00

0

使用android:drawableLeft="@drawable/yourimage"这个国王设计 这里的属性有关的详细规格... http://developer.android.com/reference/android/widget/TextView.html#attr_android:drawableLeft

希望这将帮助你。

+0

它挤压我的BG图像到右边 – 2013-05-04 16:41:27

+0

设置您的bg图像为android:background =“@ drawable/your bg image”to text view .. – itsrajesh4uguys 2013-05-04 16:46:48

+0

如果您的bg图像带有集成声音图标意味着你不能设置drawableleft ..你可以使用任何布局和设置bg图像布局背景和设置文本视图与填充.. – itsrajesh4uguys 2013-05-04 16:48:55

1

如果音量图标与背景相结合,那么最简单的方法是创建一个RelativeLayout并将此图像设置为背景。其次在该RelativeLayout一个TextView并给予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> 
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> 

得到的抽点

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" />