我有一个450px * 450px的ImageView,它完全显示在Note 3(1080 * 1920)上,但是当我在其他较小分辨率的设备上运行应用程序时,ImageView显示得更大,而其他一些内容并没有显示出来。适合屏幕。解决这类问题的任何解决方案?是关于单位(px,dp)?
答案 0 :(得分:1)
原因是每个设备都有不同的屏幕尺寸,因此您必须根据屏幕尺寸重新调整ImageView的大小,或者只是为ImageView使用不同尺寸的图像,这些图像将根据屏幕尺寸自动使用。为此,请检查,
一个。以编程方式获取屏幕尺寸并将适当的尺寸设置到ImageView中
Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics ();
display.getMetrics(outMetrics);
float density = getResources().getDisplayMetrics().density;
float dpHeight = outMetrics.heightPixels / density;
float dpWidth = outMetrics.widthPixels / density;
B中。为不同的屏幕添加不同的图像尺寸,
res/drawable-mdpi/my_icon.png // bitmap for medium density
res/drawable-hdpi/my_icon.png // bitmap for high density
res/drawable-xhdpi/my_icon.png // bitmap for extra high density
Manifest中的以下代码支持所有dpis。
<supports-screens android:smallScreens="true"
android:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="true" />
答案 1 :(得分:0)
您的屏幕分辨率表示您正在设置xxhdpi分辨率设备的ImagevIew高度和宽度,第二件事使用dp作为密度像素,它根据分辨率使用150dpX150dp覆盖屏幕,对于ImageView使用以下链接进行px到dp转换{ {3}}