2014-09-24 2 views
0

Я создал очень простое приложение для Android, которое отображает изображение. Код:ImageView Я не могу отобразить изображение

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 Кб) и второй img_small_size.jpg (размер 192 КБ). Первое изображение имеет более высокое разрешение, поэтому требуется больше памяти, чем второе изображение. При попытке отображения второго изображения (img_small_size.jpg) приложение работает отлично и отображает изображение. Но когда я пытаюсь отобразить изображение кулака (img_small_size.jpg), приложение не отображает изображение, только показывает черный экран. Почему мое приложение не может отображать первое изображение? Как отобразить первое изображение?

Я хочу отобразить первое изображение, потому что, когда я увеличиваю изображение сначала, изображение становится более ясным чем второе изображение.

Ссылка на изображения: http://zapodaj.net/2096f7cc62055.jpg.html

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

+0

где textView1 в вашем xml? – yrazlik

ответ

2

Ваш большой размер DIMEN является: 1571x2166

OpenGLRenderer аппаратное ускорение не может обрабатывать растровые больше 2048x2048. Вы можете попытаться отключить аппаратное ускорение, указав android: hardwareAccelerated = "false" внутри в AndroidManifest.xml файл.

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

или для обеспечения максимальной производительности вы можете изменить размер изображения перед его отображением. резервирование большой кучи значительно снизит производительность вашего приложения.

+0

Это вызывает какие-либо плохие последствия, если я устанавливаю android: hardwareAccelerated = "false" ?? –

+0

Прочтите http://developer.android.com/guide/topics/graphics/hardware-accel.html –

+0

Да, если вы отключите эту функцию, это увеличит использование вашего приложения и сделает ваше приложение ресурсоемким приложением! это не хорошо. также гораздо лучше использовать графический процессор для рендеринга вашего изображения. –