Android 缩放不同设备的图像
我想制作一个3x3的ImageView网格。为此,我创建了一个包含3个TableRows的TableLayout,并在每个TableRow中放置了3个ImageView。为了使图像视图具有相同的宽度,我将它们的android:layout\u width=0dp,并使它们的android:layout\u权重相等。为了缩放高度,我通过编程进行了调整-Android 缩放不同设备的图像,android,imageview,image-scaling,Android,Imageview,Image Scaling,我想制作一个3x3的ImageView网格。为此,我创建了一个包含3个TableRows的TableLayout,并在每个TableRow中放置了3个ImageView。为了使图像视图具有相同的宽度,我将它们的android:layout\u width=0dp,并使它们的android:layout\u权重相等。为了缩放高度,我通过编程进行了调整- public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFo
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
Configuration configuration = getResources().getConfiguration();
int screenWidthDp = configuration.screenWidthDp;
int imageSize = screenWidthDp / 3;
TableLayout tableLayout = (TableLayout) findViewById(R.id.tableLayout);
for (int i = 0; i < 3; i++) {
TableRow tableRow = (TableRow) tableLayout.getChildAt(i);
for(int j = 0; j < 3; j++) {
ImageView imageView = (ImageView) tableRow.getChildAt(j);
imageView.getLayoutParams().height = imageSize;
}
}
}
这在mdpi设备上运行良好-
但对于xxhdpi设备而言,则完全不是-
由于图像的dpi是动态获取的,我不确定我的可绘制xxhdpi、可绘制hdpi文件夹中图像的确切尺寸。解决这个问题最有效的方式是什么
编辑-我知道我需要为不同的设备制作不同版本的图像。我的问题是,如何使用GIMP等照片编辑软件确定将图像缩放到何种分辨率。Android drawable文件夹图像的比例应如下所示: 36x36 0.75x适用于低密度 48x48 1.0x中等密度基线 72x72 1.5x适用于高密度 96x96 2.0x用于超高密度 180x180 3.0x,用于超高密度 192x192 4.0x用于超高密度
有关更多信息,请参阅此链接:您可以为此使用TiCons 或Android资产工作室
您可以根据mdpi文件夹中的图像乘以设备屏幕密度来设置ImageView的宽度和高度 这是获得密度的方法 DisplayMetrics=新的DisplayMetrics;getWindowManager.getDefaultDisplay.getMetricsmetrics;
int density=metrics.density 实际上,你不必为分辨率而烦恼,很少有网站提供了创建所有图标或所有预期分辨率的工具,还可以根据Android的要求创建单独的文件夹。 您可以使用它们来获取所有大小的图标 请查看以下内容:
不同类型的设备有不同的图片你可以在我的答案中查看give网站