#android #background
#Android #фон
Вопрос:
Я делаю:
android:background="@drawable/mobile_vforum_bg"
в main.xml файл, чтобы просто установить BG.
Это работает, просто качество изображения очень низкое при просмотре на эмуляторе. Это PNG размером 320×480 (96 точек на дюйм и то же самое в папке low, med и high). Когда я использовал Titanium для создания своего приложения для Android, оно выглядело нормально. Сейчас я использую eclipse и java, и это выглядит плохо.
Ответ №1:
У меня возникла эта проблема при установке изображения с высоким разрешением в качестве фона для activity, и я смог решить ее, используя следующий Java-код из onCreate()
метода Activity.
BitmapFactory.Options myOptions = new BitmapFactory.Options();
myOptions.inDither = true;
myOptions.inScaled = false;
myOptions.inPreferredConfig = Bitmap.Config.ARGB_8888;
myOptions.inDither = false;
myOptions.inPurgeable = true;
Bitmap preparedBitmap = BitmapFactory.decodeResource(yourAppName.getSharedApplication().getResources(),
R.drawable.yourImage, myOptions);
Drawable background = new BitmapDrawable(preparedBitmap);
((LinearLayout) findViewById(R.id.yourLayoutId))
.setBackgroundDrawable(background);
Также не устанавливайте фон из XML-макета, если вы используете этот код. В случае, если это не сработает, попробуйте установить следующие строки вне тега приложения в AndroidManifest.xml
<supports-screens android:largeScreens="true"
android:normalScreens="true" android:smallScreens="true"
android:anyDensity="true" />
Надеюсь, это поможет!!!
Ответ №2:
Попробуйте переместить его в папку «res / drawable_hdpi», у меня это сработало.
Комментарии:
1. У меня уже есть одно и то же изображение во всех трех папках. Возможно, эмулятор, на котором я тестирую, настроен на низкое разрешение или что-то в этом роде
2. SDK оптимизирует все изображения, поэтому я думаю, что есть другой вариант — поместите его в папку / res / raw (файлы, которые вы туда помещаете, остаются неизменными в процессе сборки) и загрузите его вручную, используя Resources.openRawResource() .
3. Я не могу выполнить этот вызов в XML, хотя, как и то, как я делаю это выше. Как бы я тогда установил фон приложения, используя Java?
4.
yourview.setBackgroundDrawable(img);
5. В итоге я создал новое виртуальное устройство с немного другими настройками, и теперь фон выглядит нормально. Я все еще использую метод XML.