我有一个列表视图,超市的徽标作为图像。目前,它们没有完美居中并且被扭曲。请查看screenshot http://i59.tinypic.com/33adym8.png
这是我的行项目布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/highlight_selector">
<ImageView
style="@style/imgPriceStoreLogoSmall"
android:id="@+id/imgStoreLogo"
android:src="@drawable/panda_logo"
/>
<LinearLayout
android:id="@+id/layoutPriceInfo"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:orientation="vertical" >
<TextView
android:id="@+id/lblStoreName"
style="@style/lblRowProductName"
android:layout_marginTop="5dp"
android:textColor="@color/black"
android:textSize="24sp"
android:fontFamily="sans-serif-thin"
android:text="Store Full Name"/>
<TextView
android:id="@+id/lblPrice"
style="@style/lblRowOriginalPrice"
android:textSize="20sp"
android:textColor="@color/black"
android:layout_marginTop="5dp"
android:text="SAR 16.95"/>
</LinearLayout>
<ImageView style="@style/imgRowArrowIcon" />
</LinearLayout>
和我的风格
<style name="imgPriceStoreLogoSmall">
<item name="android:layout_width">80dp</item>
<item name="android:layout_height">80dp</item>
<item name="android:layout_gravity">start</item>
<item name="android:padding">5dp</item>
<item name="android:scaleType">fitXY</item>
<item name="android:contentDescription">@string/app_name</item>
<item name="android:src">@drawable/no_image</item>
</style>
我不知道徽标图像的实际尺寸,但想要调整大小以适应imageview。任何帮助表示赞赏。
谢谢, Noorul
答案 0 :(得分:0)
如果服务器图像太大,以下代码会使图像适合您的图像
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/yousampleimagesizeimage" >
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:adjustViewBounds="true"
android:maxHeight="?android:attr/listPreferredItemHeight"
android:maxWidth="?android:attr/listPreferredItemHeight"
android:scaleType="centerCrop"
android:src="@drawable/serverorDynamicimage" />
</LinearLayout>
(或)
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:scaleType="centerCrop"
android:id="@+id/actualimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/sampleimage"
android:layout_alignLeft="@+id/sampleimage"
android:layout_alignRight="@+id/sampleimage"
android:layout_alignTop="@+id/sampleimage"
android:src="@drawable/actualimage" />
<ImageView
android:visibility="invisible"
android:id="@+id/sampleimage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/sampleactualimage" />
</RelativeLayout>
答案 1 :(得分:0)
答案 2 :(得分:0)
你使用过宽度&amp;高度为80dp。如果图像小于此高度和宽度,它将被拉伸以适合此区域。如果它很大,它将按比例缩小以适应这个区域。我建议使用80x80大小的多个图像,例如160x160,40x40等
layout_gravity = start means "Push object to the beginning of its container, not changing its size."
而
center_vertical Place object in the vertical center of its container, not changing its size.
您可以使用“center_vertical”将图像置于垂直中心位置。