ImageView我无法显示图像

时间:2014-09-24 18:52:45

标签: android imageview

我创建了非常简单的Android应用程序,显示图像。 代码:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >


    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/textView1"
        android:scaleType="matrix"
        android:src="@drawable/img_big_size"
    />

</RelativeLayout>      

此外,我有两张相同的图片,首先是img_big_size.jpg(大小为468 KB),第二张是img_small_size.jpg(大小为192 KB)。 第一个图像具有更高的分辨率,因此它比第二个图像需要更多的内存。 当我尝试显示第二个图像(img_small_size.jpg)应用程序工作正常并显示图像。 但是当我尝试显示拳头图像(img_small_size.jpg)时,应用程序不显示图像只显示黑屏。为什么我的应用程序无法显示第一张图片如何显示第一张图片?

我想显示第一张图片,因为当我首先缩放图像时,图像更清晰 而不是第二张图片。

图片链接: http://zapodaj.net/2096f7cc62055.jpg.html

http://zapodaj.net/cf7233054f2fc.jpg.html

1 个答案:

答案 0 :(得分:3)

你的大图像尺寸是:1571x2166

OpenGLRenderer 硬件加速无法处理大于 2048x2048 的位图。您可以尝试通过在AndroidManifest.xml 文件中的中定义 android:hardwareAccelerated =“false ”来禁用硬件加速。

<application
    android:hardwareAccelerated="false"
    android:largeHeap="true" >

或为了获得最佳性能,您可以在显示前调整图像大小。 保留大堆将显着降低您的应用程序性能。