2

我添加了图像在TextView中绘制开始。问题是我无法控制的是可绘制的重力的TextView更改textview中绘制的图像的引力

我需要实现 What i need to achieve

我有什么迄今取得

What i have achieved so far

这是我的TextView什么

 <TextView 
      android:id="@+id/tv_8_digit_check" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:drawablePadding="@dimen/dimen_4" 
      android:drawableStart="@drawable/ic_validate" 
      android:text="@string/at_least_8_characters_txt" 
      android:textColor="@color/white_trans" 
      android:textSize="12sp" /> 

任何关于如何设置Drawable的重力的建议P /启动?由于

回答

2
  1. 尝试使用android:gravity="top"

    如果没有工作,然后用切缘阴性是这样的

  2. android:drawablePadding="-20sp"

  3. 另一种替代的方法是采取ImageView旁边 TextViewLinearLayout这样你就可以应用重力

+1

重力顶部不工作在我的情况。而关于填充我已经不得不为其他目的指定一些填充。 –

+0

然后去第三个想法 – Redman

+0

是最终做第三个解决方案。我知道这个解决方案,但我认为有人可能会有更好的解决方案。谢谢 –

2

使用复选框,而不是TextView的绘制对象,并添加自定义绘制在这里您可以使用此图片

+0

好主意。必须尝试 –

+0

这种视图的好建议... – Bhavnik

0

我建议你把图像ImageView的。将imageview和textview放在一个Linearlayout中,并将重力设置为top。也减少文字和图像的大小。

1
<LinearLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    android:gravity="top"> 

    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginRight="@dimen/dimen_4" 
     android:src="@drawable/ic_validate"/> 
    <TextView 
     android:id="@+id/tv_8_digit_check" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="@string/at_least_8_characters_txt" 
     android:textColor="@color/white_trans" 
     android:textSize="12sp" /> 

</LinearLayout> 
+0

我知道这个解决方案会起作用。但问题在于嵌套布局。并查看优化,如果它是为了在布局中添加另一个视图,为什么android内置复合drawable要设置在同一个TextView中? –

+0

通常当文本是短的复合drawable是好主意,但是当你想要自定义的东西它不能帮助。你可以把android:maxLines =“1”并减小文本大小,但是它可能会在小屏幕上造成问题。 –

+0

也可以在主TextView下为“字符”创建额外的TextView –