Nie mogę sprawić, że mój ImageView wyświetli obraz źródłowy w oryginalnym rozmiarze. ImageView wygląda następująco:Android: ImageView skaluje obraz źródłowy
<ImageView
android:id="@+id/Logo"
android:src="@drawable/logo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
</ImageView>
Źródłem obrazu wynosi 140 pikseli szerokości, ale na ekranie Nexus One, który jest 480 pikseli szerokości wykorzystuje połowę szerokości. Użycie wartości bezwzględnych w px lub dp dla szerokości i wysokości nic nie zmienia. Obraz wygląda również bardzo antyaliasingu ze skalowania. Dlaczego tak się dzieje i jak mogę temu zapobiec?
Po prostu wypróbowałem twoją sugestię i na pewno ma to coś wspólnego. Dziękuję Ci bardzo! Obraz ma teraz "prawidłowy" rozmiar, jeśli użyjemy wymiarów obrazu jako bezwzględnych wartości pikseli dla width_width i height_hearts. Jeśli używam wrap_content, obraz jest wciąż tak duży, jak wcześniej, który, jak się wydaje, ma taki sam rozmiar, jak w przypadku użycia wymiarów obrazu z "dp" jako wymiaru. Zgaduję, że właśnie tak działa wrap_content. W takim przypadku wydaje się, że obraz jest wyświetlany zbyt duży na urządzeniu z ekranem o wysokiej gęstości, takim jak Nexus. –
Co jest nadal dziwne, jeśli używam wrap_content dla layout_width i layout_height, ale użyj bezwzględnych wartości pikseli dla maxWidth i maxHeight, która nie ma wpływu. Ponieważ korzystanie z wymiarów w pikselach jest odradzane w każdym razie, zastanawiam się, czy są jakieś inne sposoby, aby zapobiec powiększeniu obrazu? –
Prawdopodobnie potrzebujesz dwie wersje twojego obrazu, jeden dla ekranów o średniej gęstości i jeden dla ekranów o wysokiej gęstości. Spróbuj umieścić obraz w 'res/drawable-hdpi /' i sprawdź, czy to pomaga. – CommonsWare