2015-12-17 4 views
3

Доброе утро, У меня вопрос. В моем приложении я пытаюсь загрузить образ BitMap. Как гид Android предложить (http://developer.android.com/training/displaying-bitmaps/load-bitmap.html) Я использую методКак установить высоту и ширину растрового изображения?

decodeSampledBitmapFromResource(Resources res, int resId,int reqWidth, int reqHeight)

Это работа отлично, но на первый нет, потому что я установить reqWidth и reqHeight в соответствии с размерами моего смартфона (высота: 2560; ширина: 1440). Для этого приложение произвел ошибку последующей:

12-16 12:21:51.911 5401-6627/? E/ACRA: java.lang.OutOfMemoryError: Failed to allocate a 44236812 byte allocation with 13002080 free bytes and 12MB until OOM 12-16 12:21:51.911 5401-6627/? E/ACRA: at dalvik.system.VMRuntime.newNonMovableArray(Native Method) etc....

Но когда я изменить высоту и ширину, как руководство предложить (100 х 100), то работать и после того, как я увеличил это до 500 х 500. Для этого, на мой вопрос is Как установить это значение динамически для другого устройства? ИЛИ это значение может оставаться статическим и, следовательно, адаптироваться к экрану размера?

Извините за мой плохой английский Я итальянский. Надеюсь, я поняла! :)

ответ

1

Для вас может потребоваться функция Android, которая использует различные доступные ресурсы в зависимости от экрана пользователя. Взгляните here.

В вашем случае вы будете вручную создавать изображения разных размеров и помещать их соответственно в разные папки внутри res. После этого система Android будет обрабатывать выбор правильного изображения на основе устройства.

+0

mmm Я не очень хорошо понимаю, мое изображение hava alredy разных размеров, например: image2.jpg image2.jpg (hdpi) image2.jpg (ldpi) image2.jpg (mdpi) image2.jpg (xdpi) Вы ссылаетесь на это? –

+0

Предположим, у вас есть изображение 100x100px, и вы хотите использовать его как пригодный для рисования. Вы помещаете его под именем 'my_drawable.png' внутри' drawable-mdpi' папки в 'res'. Затем вы создаете изображение размером 75x75px и помещаете его в 'drawable-ldpi' под тем же именем' my_drawable.png'. Затем вы создаете одно и то же изображение размером 150x150px и помещаете его в папку 'drawable-hdpi' как' my_drawable.png' и так далее, пока у вас не будет изображения, соответствующего каждой плотности экрана, с которой вы хотели бы работать с –

0

попробовать с этим кодом с XML-файл

<ImageView 
android:id="@+id/img" 
android:layout_width="100dp" 
android:layout_height="100dp" 
android:background="@drawable/ic_launcher" 
/> 

программно вы можете установить размер изображения

img.setImageResource(R.drawable.login_avatar); 
    img.getLayoutParams().height = 200; 
    img.getLayoutParams().width = 150; 
+0

. Это работает, но я будет ширина и высота как match_parent andimg.getLayoutParams(). height = 200; переместите мое изображение в верхний левый :( –

+0

@AntonioFaienza это зависит от вас, где вы пишете свое изображение в (контейнере). Макет вам нужно, чтобы дать край сверху или снизу, влево, вправо и т. д., чтобы установить изображение с вашим путем – Amitsharma

Смежные вопросы