Android 中图片显示问题 Android中ImageView显示的图片太大,想把它缩小以固定值显示,怎么办 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <ImageView android:id="@+id/mainbg" 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"/> public static BitmapDrawable createNewIcon(BitmapDrawable oldIcon, 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; } android 做地图应用(定位), 怎么 让位置指针跟着 手机转动(像指南针一样),功能像google地图 android MapView key 的问题 求教!!!SOS!!!!! 崩溃,无法编译,到底哪里出错? 如何自动产生图片的阴影效果 dnw c0008000 这个值的来源 关于 网上那些在linux 下 调试android 源码的文档 找了一下午没找到各位看看 请教下做机顶盒的大神们 TAG名字,用this.getClass().getSimpleName()归一化取得,有弊端吗? 关于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;
}