我有一些100 * 100的图标,我找不到更好的分辨率图标,所以我将它们放在drawable文件夹中。图像视图的宽度和高度设置为wrap_content。当图像显示在xhdpi屏幕上时,图像会自动缩放到200 * 200吗?或者我应该自己创建所有尺寸并将它们放在不同的文件夹中?我应该这样做吗?
答案 0 :(得分:0)
当您指定宽度和高度为wrap_content时,图像将不会缩放,并且仅占用原始大小,即使在xhdpi中也会占用100x100像素。这意味着,您的图像在高端设备上看起来很小。如果您不希望图像显得很小,则必须创建图像的所有尺寸并将其放在各种不同密度的文件夹中。
答案 1 :(得分:0)
我不确定您要做什么,是否尝试让imageview适应您的图片尺寸,或者您是否尝试将图片视图固定大小?
当图像显示在xhdpi屏幕上时,图像将缩放到 自动200 * 200?
不,它仍然会显示为100 * 100px(大约50dp,因为xhdpi&#39的乘数是2.0)
或者我应该自己创建所有尺寸并将它们放在不同的尺寸中 文件夹?我应该这样做吗?
绝对这样做,有很多工具可以帮助你做到这一点。一个例子是http://romannurik.github.io/AndroidAssetStudio/index.html
答案 2 :(得分:0)
在我的情况下,我会做一个简单的数学。以下是从文档中获取的示例reference。
此方法将重新调整您的Image大小,我们的示例参数将是Resource Image
public static Bitmap decodeSampledBitmapFromResource(Resources res, int resId,
int reqWidth, int reqHeight) {
// First decode with inJustDecodeBounds=true to check dimensions
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(res, resId, options);
// Calculate inSampleSize
options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
return BitmapFactory.decodeResource(res, resId, options);
}
这是重新调整Image
的辅助方法public static int calculateInSampleSize(
BitmapFactory.Options options, int reqWidth, int reqHeight) {
// Raw height and width of image
final int height = options.outHeight;
final int width = options.outWidth;
int inSampleSize = 1;
if (height > reqHeight || width > reqWidth) {
final int halfHeight = height / 2;
final int halfWidth = width / 2;
// Calculate the largest inSampleSize value that is a power of 2 and keeps both
// height and width larger than the requested height and width.
while ((halfHeight / inSampleSize) > reqHeight
&& (halfWidth / inSampleSize) > reqWidth) {
inSampleSize *= 2;
}
}
return inSampleSize;
}
<强>更新强>
基本上它不会自动扩展到200 * 200,你需要自己做。我提供的上述代码将允许您以编程方式更改图像大小,其他替代方法是使用带有DPI的文件夹,如您所述。
答案 3 :(得分:0)
您可以为imageview添加属性,例如: -
android:scaleType="fitXY"
另外,如果您为imageview使用表格布局,最好采用width =&#34; 0dp&#34;因为表格布局不同......你可能还需要加权=&#34; 1&#34; ..
答案 4 :(得分:0)
请通过以下链接阅读:android系统如何调整大小 可绘制不同的屏幕尺寸。
Different image sizes for resolution-specific Drawable folders
和
http://developer.android.com/guide/practices/screens_support.html
答案 5 :(得分:-1)
是Android为您自动缩放