android - 在imageview中显示大型drawable无法正常工作

时间:2014-07-17 06:02:35

标签: android image imageview scrollview drawable

我有这个horizo​​ntalscrollview在页面顶部显示我的图像。

<HorizontalScrollView
    android:id="@+id/horizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:fillViewport="true"
    android:scrollbars="none" >

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:scaleType="center"
            android:contentDescription="@null" />

</HorizontalScrollView>

我的图片是PNG图片(3735 * 400)51.3 KB 我已经尝试过本教程了 http://developer.android.com/training/displaying-bitmaps/index.html?

然后图像出现了,但它缩小了。 恩。我希望图像的高度是我屏幕的1/3,但它只有1/6。

无论如何要以实际尺寸显示大抽奖吗?

*对于缩放图像时的代码。 我在教程中使用了BitmapWorkerTask类,它是一个Asynctask。 它调用此函数

public static Bitmap decodeSampledBitmapFromResource(Resources res,
        int resId, int reqWidth, int reqHeight) {

    // First decode with inJustDecodeBounds=true to check dimensions
    final BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeResource(res, resId, options);

    // Calculate inSampleSize
    options.inSampleSize = calculateInSampleSize(options, reqWidth,
            reqHeight);

    // Decode bitmap with inSampleSize set
    options.inJustDecodeBounds = false;
    return BitmapFactory.decodeResource(res, resId, options);
}
像这样

decodeSampledBitmapFromResource(getResources(), data, 100,
                100);

我知道这会将图像的大小更改为100 * 100像素。 但是当我将参数从100更改为其他数字时,我的图像就不会显示出来。 所以我坚持下去。

在LogCat中它说 &#39;位图太大而无法上传到纹理中(4980x533,max = 4096x4096)

当我将图像从drawable-hdpi移动到drawable-nodpi时,图像变得更大,但不是我想要的尺寸。

2 个答案:

答案 0 :(得分:1)

试试这个:

<?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" >

<HorizontalScrollView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="14dp"
    android:background="@drawable/images" />
</HorizontalScrollView>
</RelativeLayout>

它对我来说很好

答案 1 :(得分:1)

更改

android:scaleType="center" 

android:scaleType="fitXY"

并添加 -

android:adjustViewBounds="false"