ImageView在不同分辨率的设备

时间:2015-05-29 01:12:37

标签: android

我有一个450px * 450px的ImageView,它完全显示在Note 3(1080 * 1920)上,但是当我在其他较小分辨率的设备上运行应用程序时,ImageView显示得更大,而其他一些内容并没有显示出来。适合屏幕。解决这类问题的任何解决方案?是关于单位(px,dp)?

2 个答案:

答案 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}}