Material 图标:将 48dp 缩放到 144dp 的限制
Material Icons: Scaling 48dp to 144dp limitations
我正在尝试将 ic_library_books_black_48dp Material Icon 用作文件列表视图中的文件类型图标。
最大的可用文件,ic_library_books_black_48dp.png,密度如下
drawable-mdpi
drawable-hpi
drawable-xhdpi
drawable-xxhdpi
drawable-xxxhdpi
由于图像文件类型显示缩略图预览,因此需要更大的图标以保持一致性。它们被调整为 144x144 dp:
<ImageView
android:id="@+id/grid_item_iv"
android:layout_width="144dp"
android:layout_height="144dp"/>
这是 xhdpi 设备 上原型的放大视图:
注意:放大浏览器以查看像素差异。
我对提供的 xhdpi 分辨率不满意,所以我复制了 xxhdpi 和 xxxhdpi 版本,相应地重命名它们,并将它们放入 drawable-xhdpi 文件夹
resources
drawable-xhdpi
ic_library_books_black_48dp.png
ic_library_books_black_48dp_xxhdpi.png
ic_library_books_black_48dp_xxxhdpi.png
然后他们被分配到 GetView()
switch (fileType)
{
case AttachmentFileType.FileType.Docs:
iv.SetImageResource(Resource.Drawable.ic_library_books_black_48dp);
break;
case AttachmentFileType.FileType.Audio:
iv.SetImageResource(Resource.Drawable.ic_library_books_black_48dp_xxhdpi);
break;
case AttachmentFileType.FileType.Images:
iv.SetImageResource(Resource.Drawable.ic_library_books_black_48dp_xxxhdpi);
break;
default:
iv.SetImageResource(Resource.Drawable.ic_attachment_test);
break;
}
我更喜欢 ic_library_books_black_48dp_xxxhdpi.png 在我的 xhdp 设备上放大到 144x144 dp 的清晰度。 但是,这种方法不适用于更高密度的屏幕(xxhdpi、xxxhdpi ) 因为 xxxhdpi 是 ic_library_books_black_48dp.png 提供的最高版本。要支持 xxhdpi 和 xxxhdpi,我需要分别使用 xxxxhdpi 和 xxxxxhdpi 版本的图标(即 "two grades higher")。 有没有办法在不创建自定义图标的情况下完成这项工作(android studio 或编辑程序可以在保持像素密度的同时进行升级)?
一个棘手的方法是将 imageView 的 scaleType 设置为 fitcenter 并为您的 imageview 设置常量 width=144dp 和 height=144dp。它会将您的图标放大到 144dp
<ImageView
android:layout_width="144dp"
android:layout_height="144dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_library_books_black_48dp"/>
如果可以的话,我会使用矢量图形。 Android Studio 直接支持它们。
File -> New -> Vector Graphic
.
然后点击图标“搜索”...找到您的图书图标...
接下来完成它。 (此处无需更改任何内容)。
如果你超过 API 21,那么你就可以开始了,你可以像引用任何其他图标一样引用它。
如果您需要降低 APIs 的支持,请阅读 the official Android Documentation about Vector Drawables。
此外,请阅读所有关于 Android Studio support here 的内容。
使用 imageView 的 scaleType 到 FIT_CENTER。
FIT_CENTER-使用 CENTER 缩放图像。
在 XML 个文件中
android:scaleType="fitCenter"
或在您的 Activity class
imgview.setScaleType(ImageView.ScaleType.FIT_CENTER);
我正在尝试将 ic_library_books_black_48dp Material Icon 用作文件列表视图中的文件类型图标。
最大的可用文件,ic_library_books_black_48dp.png,密度如下
drawable-mdpi
drawable-hpi
drawable-xhdpi
drawable-xxhdpi
drawable-xxxhdpi
由于图像文件类型显示缩略图预览,因此需要更大的图标以保持一致性。它们被调整为 144x144 dp:
<ImageView
android:id="@+id/grid_item_iv"
android:layout_width="144dp"
android:layout_height="144dp"/>
这是 xhdpi 设备 上原型的放大视图:
我对提供的 xhdpi 分辨率不满意,所以我复制了 xxhdpi 和 xxxhdpi 版本,相应地重命名它们,并将它们放入 drawable-xhdpi 文件夹
resources
drawable-xhdpi
ic_library_books_black_48dp.png
ic_library_books_black_48dp_xxhdpi.png
ic_library_books_black_48dp_xxxhdpi.png
然后他们被分配到 GetView()
switch (fileType)
{
case AttachmentFileType.FileType.Docs:
iv.SetImageResource(Resource.Drawable.ic_library_books_black_48dp);
break;
case AttachmentFileType.FileType.Audio:
iv.SetImageResource(Resource.Drawable.ic_library_books_black_48dp_xxhdpi);
break;
case AttachmentFileType.FileType.Images:
iv.SetImageResource(Resource.Drawable.ic_library_books_black_48dp_xxxhdpi);
break;
default:
iv.SetImageResource(Resource.Drawable.ic_attachment_test);
break;
}
我更喜欢 ic_library_books_black_48dp_xxxhdpi.png 在我的 xhdp 设备上放大到 144x144 dp 的清晰度。 但是,这种方法不适用于更高密度的屏幕(xxhdpi、xxxhdpi ) 因为 xxxhdpi 是 ic_library_books_black_48dp.png 提供的最高版本。要支持 xxhdpi 和 xxxhdpi,我需要分别使用 xxxxhdpi 和 xxxxxhdpi 版本的图标(即 "two grades higher")。 有没有办法在不创建自定义图标的情况下完成这项工作(android studio 或编辑程序可以在保持像素密度的同时进行升级)?
一个棘手的方法是将 imageView 的 scaleType 设置为 fitcenter 并为您的 imageview 设置常量 width=144dp 和 height=144dp。它会将您的图标放大到 144dp
<ImageView
android:layout_width="144dp"
android:layout_height="144dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_library_books_black_48dp"/>
如果可以的话,我会使用矢量图形。 Android Studio 直接支持它们。
File -> New -> Vector Graphic
.
然后点击图标“搜索”...找到您的图书图标...
接下来完成它。 (此处无需更改任何内容)。
如果你超过 API 21,那么你就可以开始了,你可以像引用任何其他图标一样引用它。
如果您需要降低 APIs 的支持,请阅读 the official Android Documentation about Vector Drawables。
此外,请阅读所有关于 Android Studio support here 的内容。
使用 imageView 的 scaleType 到 FIT_CENTER。 FIT_CENTER-使用 CENTER 缩放图像。 在 XML 个文件中
android:scaleType="fitCenter"
或在您的 Activity class
imgview.setScaleType(ImageView.ScaleType.FIT_CENTER);