我希望在文字左侧有一张图片。我希望图像和文本都位于屏幕的水平中心。所以我在下面创建了布局。但是,虽然在eclipse图形布局上看起来一切正确,但在真实设备上,图像仍然出现在图像的顶部,就像我使用了drawableTop一样。
<RelativeLayout
android:id="@+id/animal"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@id/the_bar"
android:layout_centerHorizontal="true"
android:background="#FFFFFF"
android:clickable="true"
android:onClick="onAnimalClicked" >
<TextView
android:id="@+id/animal_textview"
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_centerHorizontal="true"
android:drawableLeft="@drawable/animal_button"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:text="Add to Animals"
android:textColor="#258BE2"
android:textStyle="bold" />
</RelativeLayout>
答案 0 :(得分:1)
试试这个:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/animal"
android:layout_width="match_parent"
android:layout_height="40dp"
android:layout_below="@id/the_bar"
android:layout_centerHorizontal="true"
android:background="#FFFFFF"
android:clickable="true"
android:onClick="onAnimalClicked" >
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageView"
android:src="@drawable/_ic_launcher"/>
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/imageView"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Large Text"/>
</RelativeLayout>
</LinearLayout>
答案 1 :(得分:1)
如果要在imageview /其他视图上重叠文本,则不能使用RelativeLayout。这是因为布局的性质使得视图排斥其他视图。如果视图位于另一个视图的顶部,则会自动将其推到默认位置并忽略写入的属性。
因此,解决方案是使用FrameLayout
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:src="@drawable/bike" >
</ImageView>
<TextView
android:id="@+id/tv1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:gravity="center" >
</TextView>
</FrameLayout>
答案 2 :(得分:0)
试试这个:
<TextView
android:id="@+id/animal_textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:drawableLeft="@drawable/animal_button"
android:drawablePadding="5dp"
android:gravity="center_vertical"
android:text="Add to Animals"
android:textColor="#258BE2"
android:textStyle="bold" />
</RelativeLayout>
或者不是在左边插入一个drawable,而是可以插入ImageView,右边对齐TextView的左边。