Android中ImageView显示的图片太大,想把它缩小以固定值显示,怎么办
解决方案 »
- webview中右下角的缩放按钮能不能去掉
- 同样的一段代码,升级了模拟器之后就出问题了,苦闷中,求高人帮助!!
- 平板电脑android怎样升级?
- import com.android.common.Search出错
- 用2.1的环境打开1.5的程序时提示“Unable to resolve target 'android-3'”
- android 客户端 用socket接收xml字符串问题
- 新手求解关于MediaPlayer问题
- Android中权限有什么用?
- 浅析Android中的消息机制
- 反编译高德的apk
- 关于SimpleCursorAdapter的怪事
- android入门,发现一个问题,终于解决
android:src="@drawable/mainbg"
android:scaleType="center"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerVertical="true"/>如果要固定尺寸,假设长宽各为100px<ImageView android:id="@+id/mainbg"
android:src="@drawable/mainbg"
android:scaleType="center"
android:layout_width="100px"
android:layout_height="100px"
android:layout_centerVertical="true"/>
Context context, int id) { BitmapDrawable icon = oldIcon;
final Bitmap.Config c = icon.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888
: Bitmap.Config.RGB_565;
int sIconWidth, sIconHeight;
sIconWidth = sIconHeight = (int) context.getResources().getDimension(
R.dimen.img_width); int width = sIconWidth;
int height = sIconHeight; Bitmap bmp = BitmapFactory.decodeResource(context.getResources(), id);
float scale = 1.0f;
int iconWidth = icon.getIntrinsicWidth();
int iconHeight = icon.getIntrinsicHeight(); // Log.e("12", "BitmapDrawable:iconwidth"+iconWidth);
// Log.e("12", "BitmapDrawable:iconHeight"+iconHeight);
// Log.e("12", "BitmapDrawable:width"+width);
// Log.e("12", "BitmapDrawable:height"+height);
final Canvas canvas = new Canvas();
Rect sOldBounds = new Rect();
if (width > 0 && height > 0) {
// if (width < iconWidth || height < iconHeight || scale != 1.0f) { final float ratio = (float) iconWidth / iconHeight; if (iconWidth > iconHeight) {
height = (int) (width / ratio);
} else if (iconHeight > iconWidth) {
width = (int) (height * ratio);
} final Bitmap thumb = Bitmap
.createBitmap(sIconWidth, sIconHeight, c);
canvas.setBitmap(thumb);
sOldBounds.set(icon.getBounds());
final int x = (sIconWidth - width) / 2;
final int y = (sIconHeight - height) / 2;
icon.setBounds(x, y, x + width, y + height); canvas.drawBitmap(bmp, new Matrix(), null);
icon.draw(canvas);
icon.setBounds(sOldBounds);
icon = new BitmapDrawable(context.getResources(), thumb); // } else if (iconWidth < width && iconHeight < height) {
//
// final Bitmap.Config c1 = Bitmap.Config.ARGB_8888;
// final Bitmap thumb = Bitmap.createBitmap(sIconWidth, sIconHeight,
// c1);
// canvas.setBitmap(thumb);
// sOldBounds.set(icon.getBounds());
// final int x = (width - iconWidth) / 2;
// final int y = (height - iconHeight) / 2;
// icon.setBounds(x, y, x + iconWidth, y + iconHeight);
// canvas.drawBitmap(bmp, new Matrix(), null);
// icon.draw(canvas);
// icon.setBounds(sOldBounds);
// icon = new BitmapDrawable(context.getResources(), thumb);
// Log.e("12",
// "iconWidth < widthBitmapDrawable:iconwidth"+iconWidth);
// Log.e("12", "BitmapDrawable:iconHeight"+iconHeight);
// Log.e("12", "BitmapDrawable:width"+width);
// Log.e("12", "BitmapDrawable:height"+height);
// }
}
return icon;
}