【问题标题】:Android : ImageView bitmap image being cut offAndroid:ImageView位图图像被切断
【发布时间】:2014-12-15 04:19:17
【问题描述】:

我有一个显示 Imageview 的应用程序,该应用程序使用位图填充。图像在三星 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:图片是一列火车,下面有一些文字。

【问题讨论】:

  • 尝试给出最小最大高度宽度
  • @BhavinChauhan - 谢谢。我会试试的。
  • 也尝试发布一些代码,你的xml也是!
  • @LeonardoFerrari - 我一到我的开发机器前就会这样做。设备的屏幕分辨率会导致这种行为吗?
  • 有可能。我建议您阅读以下内容:developer.android.com/training/multiscreen/screendensities.html

标签: android bitmap imageview


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    我不明白您为什么没有在 ImageView 上将 src 设置为火车可绘制对象。无论如何,您应该在 PS 或任何其他 img 编辑器中创建不同尺寸的同一图像并正确导入。 无论如何,我强烈建议您 read this guidethis one 以更好地了解如何在不同的屏幕尺寸上处理。

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 2016-01-02
      相关资源
      最近更新 更多