Android:ImageView位图图像被切断

时间:2014-12-12 03:47:34

标签: android bitmap imageview

我有一个显示Imageview的应用程序,该视图使用位图填充。图像在三星Galaxy S3上正常显示,但它在Sony XPeria Z上切断了。

这些设备上的图像如下:

Galaxy S3

Xperia Z

我需要做什么才能显示图像,以免被裁剪。

try {
            Paint paint1 = new Paint();
            paint1.setTextSize(20);
            paint1.setTypeface(rcond);
            int bitmapWidth = (int)(bitmapList.size() * (80 + paint1.measureText("\u2192")));// + paint1.measureText("\u2192"));
            drawnBitmap = Bitmap.createBitmap(bitmapWidth, 110, Config.ARGB_8888);

            Canvas canvas = new Canvas(drawnBitmap);
            float left = 0;

            for (Bitmap bmp : bitmapList){
                canvas.drawBitmap(bmp, left, 10, null);

                left = left + 80;// + paint.measureText("\u2192");
            }           
        }



<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/widget76"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/black" >

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="5dp"
        android:divider="@android:color/black"
        android:dividerHeight="10dp" />

    <RelativeLayout
        android:id="@+id/widget78"
        android:layout_marginTop="5dp" 
        android:layout_width="wrap_content"
        android:paddingLeft="5sp"
        android:paddingRight="5sp"
        android:background="@drawable/roundedbutton"
        android:layout_height="wrap_content" >

<!--     <RelativeLayout -->
<!--         android:id="@+id/widget778" -->
<!--         android:layout_width="wrap_content" -->
<!--         android:visibility="gone" -->
<!--         android:background="@drawable/rounded_button_black" -->
<!--         android:layout_height="wrap_content" > -->

<!--         From -->
        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="sans-serif"
            android:text=""
            android:ellipsize="middle"
            android:layout_alignParentLeft="true"
            android:textColor="#000000"
            android:textStyle="bold"
            android:textSize="13sp" />

<!--         From Time-->
        <TextView
            android:id="@+id/textView3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="sans-serif"
            android:layout_toRightOf="@id/textView1"
            android:text=""
            android:gravity="right"
            android:layout_alignParentRight="true"
            android:textColor="#000000"
            android:textStyle="bold"
            android:textSize="13dp" />

        <LinearLayout 
            android:id="@+id/llMid"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:weightSum="10"
            android:orientation="horizontal"
            android:layout_below="@id/textView1"
            >
        <ImageView
            android:id="@+id/ImageView01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="9"
            android:layout_gravity="left"
            android:maxHeight="110dp"
            android:paddingTop="3dp"
            android:paddingBottom="3dp"
            android:src="@drawable/walking" />

        <TextView
            android:id="@+id/textView5"
            android:layout_width="wrap_content"
            android:fontFamily="sans-serif"
            android:text=""
            android:layout_gravity="center"
            android:gravity="center"
            android:layout_weight="1"
            android:textColor="#000000"
            android:textStyle="bold"
            android:textSize="24sp"
            android:layout_height="50sp"            
            android:width="60sp" />        
        </LinearLayout>
<!--         To -->        
        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="sans-serif"
            android:text=""
            android:gravity="right"
            android:layout_below="@id/llMid"
            android:layout_alignParentLeft="true"            
            android:textColor="#000000"
            android:textStyle="bold"
            android:ellipsize="middle"
            android:textSize="13sp" />

<!--         To Time -->        
        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="sans-serif"
            android:text=""
            android:layout_below="@id/llMid"
            android:layout_toRightOf="@id/textView2"
            android:layout_alignParentRight="true"           
            android:gravity="right" 
            android:textColor="#000000"
            android:textStyle="bold"
            android:textSize="13sp" />
<!--     </RelativeLayout> -->

    </RelativeLayout>
</RelativeLayout>

PS:图像是火车的图像,下面有一些文字。

2 个答案:

答案 0 :(得分:0)

我无法理解为什么你没有在你的ImageView上设置src作为列车可绘制的。无论如何,您应该在PS或任何其他img编辑器中创建相同图像的不同大小并正确导入它。 无论如何,我强烈建议您read this guidethis one更好地了解如何在不同的屏幕尺寸上进行操作。

希望它有所帮助!

答案 1 :(得分:0)

所以在尝试了几天并使用位图绘制各种图标得到不一致的结果后,我想出了一个有效的解决方案(虽然它不是很漂亮)。

要显示的图标数量最多为10,但每行中有多少,我不知道。所以在我的布局中,我定义了10个ImageViews。在代码中,我为每个imageview设置了一个所需的图标。其余的,我将可见性设置为GONE。

这似乎工作正常,我没有得到任何裁剪的图标。