obraz mdpi jest za mały na 10" tablet z Androidem

Mam drawables dla każdej gęstości jako ldpi, mdpi, hdpi i xhdpi.

Problem: Zarówno tablet 10" (1280x800), jak i urządzenie słuchawkowe 320x480 wykorzystują średnią gęstość. Mam obraz 35x35 mdpi. Ale ten obraz jest zbyt mały dla tabletu, podczas gdy jest ok dla słuchawki.

Czytam odpowiednie dokumenty. Ale chyba nie mogłem zrozumieć sth. Czy jest i tak do korzystania z tabletu obrazy xhdpi lub zastanawiam się, jak używać większych obrazów dla tabletu mdpi.

Author: alain.janinm, 2012-03-29

4 answers

Powinieneś dodać drugi identyfikator large i / lub xlarge do folderów do rysowania. Zwiększ rozmiar w drawable-xlarge-mdpi, aż będziesz zadowolony z wyniku, podczas gdy drawable-mdpi będzie taki sam rozmiar jak wcześniej.

To zwiększa rozmiar aplikacji, ale to naprawi twój problem.

 26
Author: WarrenFaith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-29 13:44:26

Jeśli chcesz to osiągnąć bez zwiększania rozmiaru aplikacji, istnieje sposób, aby ekran o wysokiej gęstości i duży ekran o średniej gęstości używały tego samego zasobu. Musisz umieścić obraz, który chcesz ponownie użyć w folderze 'drawable-nodpi'. Spowoduje to, że platforma nie będzie wykonywać własnego skalowania podczas korzystania z niej. Na przykład, zakładając, że masz zasób o nazwie 'my_resource' , jeśli chcesz, aby ekran o rozmiarze tabletu używał Twojego zasobu xhdpi, usuń go z drawable-xhdpi i zmień jego nazwę TAK:

/drawable-nodpi/my_resource_xhdpi.png

Następnie w folderach drawable-xhdpi i drawable-xlarge Utwórz plik o nazwie my_resource.xml, który wygląda tak:

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/my_resource_xhdpi">
</bitmap>

Teraz, gdy używasz @drawable / my_resource, wersja xhdpi będzie używana przez ekrany xhdpi i XLarge i musisz tylko utrzymać jedną wersję obrazu. Używam tej techniki dość często i działa naprawdę dobrze. Mam nadzieję, że to pomoże!

 18
Author: kingraam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-29 13:56:01

Są one definiowane jako powszechna praktyka:

Urządzenia:

drawable-ldpi/xyz.png          low resolution devices 320x240 (now a days no phone comes with this resolution)
drawable-mdpi/xyz.png          medium resolution devices 480x320
drawable-hdpi/xyz.png          high resolution devices 800x480
drawable-xhdpi/xyz.png         Extra high resolution devices 1280*720
drawable-xxhdpi/xyz.png        Extra Extra high resolution devices 1920x1080

Tabletki:

drawable-large-mdpi/xyz.png    7” Tablet (600x1024 mdpi)
drawable-xlarge-mdpi/xyz.png   10” tablet (720x1280 mdpi, 800x1280 mdpi, etc).
 10
Author: karan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-23 09:37:53

Dołączam niektóre zasoby do folderów drawable-xlarge i drawable-large, oprócz folderów drawable-hdpi. To mi pasuje.

Inną alternatywą jest bezpośrednie przeskalowanie obrazu w kodzie, co robię za pomocą następującego kodu:

Drawable scaledIcon = new BitmapDrawable(Bitmap.createScaledBitmap(myImage, pxInt, pxInt, true));
myImageView.setBackgroundDrawable(scaledIcon);

Nie jest dobrym pomysłem skalowanie wielu obrazów w kodzie (przy użyciu tej metody), ponieważ myślę, że modyfikowanie obrazów w locie wymaga dużych zasobów. Używam tego w niektórych przypadkach, gdy obraz, którego używam, może nie być standardowy rozmiar (i chcę, aby zawsze pasował).

 0
Author: Booger,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-29 14:06:19