我必须制作一个应用程序,我从URL下载图像,我必须在缩放后显示图像。
图像的默认尺寸为220x200
图像的缩放尺寸为55x50
以下是我执行上述操作的代码:
XML文件布局:
<ImageView android:id="@+id/productimage"
android:layout_gravity="center_vertical|left" android:layout_width="55dip"
android:layout_height="50dip" android:adjustViewBounds="true" />
以下是下载图片并调整图片大小的代码:
ImageView productImage = (ImageView) arg1
.findViewById(R.id.productimage);
if (!headerDetails[1].equals("null")) {
Bitmap image = getImage(headerDetails[1]);
if (image != null) {
try {
productImage
.setImageBitmap(Bitmap
.createScaledBitmap(
image,
productImage
.getMeasuredWidth(),
productImage
.getMeasuredHeight(),
false));
} catch (Exception e) {
e.printStackTrace();
}
}
}
以下是下载图片的课程:
private Bitmap getImage(String address) {
try {
Log.i("getimage", address);
URL url = new URL(address);
URLConnection conn = url.openConnection();
conn.connect();
InputStream is = conn.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
Bitmap bm = BitmapFactory.decodeStream(bis);
// bis.close();
// is.close();
return bm;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
此处不会抛出异常,因此正在正确下载图像。
输出:图像视图中没有显示图像。
我在做错了什么。我想要的图像尺寸是55x50,但网上图像的尺寸可能会有所不同。提前谢谢。
编辑:
在以下代码之后形成的位图:
Bitmap bm = BitmapFactory.decodeStream(bis);
没有高度和宽度,高度和宽度设置为-1。这里可能出现什么问题?
还抛出以下异常:
06-23 14:24:41.635: WARN/System.err(16618): java.lang.IllegalArgumentException: width and height must be > 0
答案 0 :(得分:0)
尝试将android:scaleType =“fix_xy”添加到imageview。我在您的代码中发现的另一个错误是您以错误的方式获得高度和宽度。试试这个:
imageView.getLayoutParams().height;
imageView.getLayoutParams().width;
答案 1 :(得分:0)
我使用此代码来缩放位图:
Bitmap selectedImage = BitmapFactory.decodeFile(selectedImagePath);
image.setImageBitmap(Bitmap.createScaledBitmap(selectedImage,75, 75, true));