是否可以对所有屏幕密度使用通用 hdpi 文件夹?我有很多图像。如果我将特定副本复制到文件夹 drawable-hdpi、drawable-ldpi、drawable-xhdpi ……但它需要大量数据(背景、位图)。
是否可以为所有设备仅设置一个可绘制文件夹,然后以编程方式根据特定设备重新缩放?
我考虑这段代码来获取屏幕的显示大小:
Display display = getWindowManager().getDefaultDisplay();
width = display.getWidth();
height = display.getHeight();
然后我将获得设备的显示密度,如下所示:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
density = metrics.density; // 1 - 1,5 - 2 .....
我将用密度重新计算 imageview 的大小:
ImageView logo = (ImageView)findViewById(R.id.logo);
LinearLayout.LayoutParams logo1 = (LinearLayout.LayoutParams) logo.getLayoutParams();
logo1.width = (int)(logo.getWidth()*density);
logo1.height = (int)(logo.getHeight()*density);
logo1.leftMargin=(int)(logo1.leftMargin*density); // for margin
logo1.topMargin=(int)(logo1.topMargin*density); // for margin
logo1.rightMargin=(int)(logo1.rightMargin*density); // for margin
logo1.bottomMargin=(int)(logo1.bottomMargin*density); // for margin
我的主要问题是我需要在所有设备上拥有相同比例的图形。这意味着我必须根据屏幕尺寸重新计算 imageViews。
这是获得密度独立屏幕的正确方法吗?如果只有 hdpi 文件夹包含文件,android 如何在其他设备上工作。它是否从该文件夹中获取文件?我可以将一个通用的可绘制文件夹设置为所有密度吗?