xhdpi屏幕分辨率难度大

时间:2014-02-04 07:51:48

标签: android

例如: - 三星Galaxy S III(1280 x 720)和三星Galaxy S 4(1920 x 1080)使用来自xhdpi的资源。我正在连续左右,中间和右边排列3个图标,大小为(256 x 256),但它在SIII和s4上重叠,它们之间的差距很大。

图标的大小应该是屏幕宽度的1/3,还是有任何解决方法?

这是以下提到的解决方案后的布局示例快照。 http://postimg.org/image/97aabr2wd/

它正确缩放,但在顶部和底部留出空间。我希望此图像中的结果与快照类似http://postimg.org/image/r6ico4vil/

其中1,2和3的高度应相同。它只是连续3个红色,绿色和蓝色图像后的空间。怎么实现这个?提前谢谢。

3 个答案:

答案 0 :(得分:1)

三星Galaxy S4是XXHDPI,而不是XHDPI。

这是一种检查设备密度的方法:

DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int density = dm.densityDpi;
switch(density)
{
 case DisplayMetrics.DENSITY_LOW:
  Toast.makeText(context, "ldpi", Toast.LENGTH_SHORT).show();
  break;
 case DisplayMetrics.DENSITY_MEDIUM:
  Toast.makeText(context, "mdpi", Toast.LENGTH_SHORT).show();
  break;
 case DisplayMetrics.DENSITY_HIGH:
  Toast.makeText(context, "hdpi", Toast.LENGTH_SHORT).show();
  break;
 case DisplayMetrics.DENSITY_XHIGH:
  Toast.makeText(context, "xhdpi", Toast.LENGTH_SHORT).show();
  break;
 case DisplayMetrics.DENSITY_XXHIGH:
  Toast.makeText(context, "xxhdpi", Toast.LENGTH_SHORT).show();
  break;
}

我从这个answer开始。

关于填充整个屏幕宽度的3个图像,您可以使用具有布局权重的线性布局。

 <LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="9" >

<ImageView
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="3" />

<ImageView
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="3" />

<ImageView
    android:layout_width="0dip"
    android:layout_height="wrap_content"
    android:layout_weight="3" />
</LinearLayout>

答案 1 :(得分:0)

在android -

px = dp *(dpi / 160)

1.在您的第一个问题中,使用上述公式,横向模式下的960dp x 720dp,320dpi意味着1920px x 1440px用于xlarge屏幕。

2.640dp x 480dp 240dpi意味着960px x 720px适用于横向模式下的大屏幕。

enter link description here

答案 2 :(得分:0)

您无法仅使用图像保证1/3的屏幕。即使两个设备具有相同的dpi(或XHdpi),也不意味着它们具有相同的大小。 唯一的方法是使用代码或布局xml。 尝试使用wights。

android:layout_width="0dp"
android:layout_weight="0.33"

使用此代码,您可以保证如果宽度,视图将是屏幕的1/3。