[英]How to align ImageView in Listview (Android)
我想一個快速的:
我無法獲取listView來正確對齊嵌入式ImageView。
如下所示,圖像未正確對齊(它們受到相鄰TextView中文本量的影響):
這是該行項目的有問題的xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:orientation="horizontal"
android:gravity="left">
<ImageView
android:id="@+id/flagIcon"
android:layout_width="60sp"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_weight="0.05"
android:src="@drawable/orange_flag"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="center_vertical"
android:orientation="vertical"
>
<TextView
android:id="@+id/location_row_item_main_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"/>
<TextView
android:id="@+id/location_row_item_secondary_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="12sp"/>
</LinearLayout>
<Button
android:id="@+id/add_spec_button"
android:layout_width="60sp"
android:layout_height="60sp"
android:layout_gravity="center_vertical"
android:focusable="false"
android:text="@string/location_add_spec"
android:onClick="myClickHandler"/>
</LinearLayout>
有任何想法嗎? 謝謝。
布局視圖
<?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="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:src="@drawable/ic_play_live" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/ic_play_live" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignBottom="@+id/imageView1"
android:layout_toRightOf="@+id/imageView1"
android:orientation="vertical" >
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
</LinearLayout>
</RelativeLayout>
嘗試這樣的事情:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:orientation="horizontal"
android:gravity="left">
<ImageView
android:id="@+id/flagIcon"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:scaleType="centerInside"
android:src="@drawable/orange_flag"/>
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical|left"
android:orientation="vertical"
>
<TextView
android:id="@+id/location_row_item_main_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16sp"/>
<TextView
android:id="@+id/location_row_item_secondary_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="12sp"/>
</LinearLayout>
<Button
android:id="@+id/add_spec_button"
android:layout_width="60dp"
android:layout_height="60dp"
android:gravity="center"
android:focusable="false"
android:text="@string/location_add_spec"
android:onClick="myClickHandler"/>
</LinearLayout>
主要問題是由中心垂直LinearLayout
的寬度引起的。 同樣ImageView
權ImageView
也沒有用,它具有一些在RelativeLayout
使用的屬性。
注意1:注意android:gravity
和android:layout_gravity
之間的區別。
注意2: sp
size單位用於文本大小。 從文檔:
dp是與密度無關的像素,它對應於160 dpi時像素的物理尺寸。
sp是相同的基本單位,但會根據用戶的首選文本大小進行縮放(這是與縮放無關的像素),因此在定義文本大小時(但絕不用於布局大小)應使用此度量單位。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.