Android y大屏幕HVGA 320x480(160dpi):

Android y大屏幕HVGA 320x480(160dpi):,android,nine-patch,xml-drawable,Android,Nine Patch,Xml Drawable,可拉拔大型mdpi(320 x 480) 可抽出大面积mdpi(480 x 320) Galaxy选项卡(240 dpi): 可拉拔大尺寸(600 x 1024) 可抽出大面积土地(1024 x 600) 高密度普通屏幕WVGA800 480x800(x854)(240 dpi): 可拉伸hdpi(480 x 800) 可抽地hdpi(800 x 480) Xoom(中等密度大,但分辨率为1280x800)(160 dpi): 可拉深xlarge(800 x 1280) drawable xla

可拉拔大型mdpi(320 x 480) 可抽出大面积mdpi(480 x 320)

Galaxy选项卡(240 dpi):

可拉拔大尺寸(600 x 1024) 可抽出大面积土地(1024 x 600)

高密度普通屏幕WVGA800 480x800(x854)(240 dpi):

可拉伸hdpi(480 x 800) 可抽地hdpi(800 x 480)

Xoom(中等密度大,但分辨率为1280x800)(160 dpi):

可拉深xlarge(800 x 1280)
drawable xlarge land(1280 x 800)

我认为第一个错误是尝试做你想做的事情,而不是像google suggest那样。不要使用PIXEL,你可以用dp、sp做任何事情,这是正确的方法。我希望在普通的Android框架中使用非编程的方法。重新计算资源分配是一件痛苦的事情。然后使用第二种方法:)支持多个屏幕需要这样的功能,至少我知道。但我总是尝试使用第一种方法,因为它是最稳定的方法。这是一个很好的答案,非常感谢<代码>普通hdpi存储桶的最小px宽度为480px-我不知道,有官方参考吗?另外,我有一个问题-可能在1.75上有一个-320x480的显示“。因为这是一个xhdpi显示器-640像素宽的图像不适合。这里为每个屏幕大小指定了DP中保证的最小大小,因此对于每个大小+dpi组合,您可以说出最小px大小。这也解决了你的问题——一个小屏幕必须至少有320dp宽。这样的屏幕必须被归类为mdpi才能符合官方文档。然而,我怀疑,如果我们真的开始看到这样的屏幕(可能与Android Wear一起使用…),一些桶和定义将不得不改变。对于如此小的屏幕,它们没有多大意义。
    DisplayMetrics displaymetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
    int screenWidth = displaymetrics.widthPixels; 
    // this will determine "scale ratio" so using which image height and width won't matter 
    int imageOriginalHeight = 101; // your original image height        
    int imageOriginalWidth = 720; // your original image width
    int imageScaleHeight = (screenWidth*imageOriginalHeight) / imageOriginalWidth;

    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(screenWidth, imageScaleHeight);
    imageView.setLayoutParams(params);
    imageView.setImageResource(R.drawable.file);
    <com.project.customview.ScaleImageView
        android:id="@+id/scaleImageView"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:scaleType="fitCenter"
        android:src="@drawable/file" />
imageView = (ScaleImageView)findViewById(R.id.scaleImageView);
imageView.setImageResource(R.drawable.file);