当前位置: 代码迷 >> Android >> Android图片小结
  详细解决方案

Android图片小结

热度:23   发布时间:2016-05-01 14:29:25.0
Android图片总结

图片缩放:

public static Drawable resizeImage(Drawable d, int w, int h) {        // load the origial Bitmap        Bitmap BitmapOrg = ((BitmapDrawable) d).getBitmap();        int width = BitmapOrg.getWidth();        int height = BitmapOrg.getHeight();        int newWidth = w;        int newHeight = h;        // calculate the scale        float scaleWidth = ((float) newWidth) / width;        float scaleHeight = ((float) newHeight) / height;        // create a matrix for the manipulation        Matrix matrix = new Matrix();        // resize the Bitmap        matrix.postScale(scaleWidth, scaleHeight);        Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0, width,                        height, matrix, true);        // make a Drawable from Bitmap to allow to set the Bitmap        // to the ImageView, ImageButton or what ever        return new BitmapDrawable(resizedBitmap);	}

?

public static Drawable resizeImage(Bitmap bitmap, int w, int h) {                // load the origial Bitmap                Bitmap BitmapOrg = bitmap;                int width = BitmapOrg.getWidth();                int height = BitmapOrg.getHeight();                int newWidth = w;                int newHeight = h;                // calculate the scale                float scaleWidth = ((float) newWidth) / width;                float scaleHeight = ((float) newHeight) / height;                // create a matrix for the manipulation                Matrix matrix = new Matrix();                // resize the Bitmap                matrix.postScale(scaleWidth, scaleHeight);                // if you want to rotate the Bitmap                // matrix.postRotate(45);                // recreate the new Bitmap                Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0, width,                                height, matrix, true);                // make a Drawable from Bitmap to allow to set the Bitmap                // to the ImageView, ImageButton or what ever                return new BitmapDrawable(resizedBitmap);        }

?图片写字:

/**	 * 图片上画字	 * */	private Bitmap drawTextAtBitmap(Bitmap bitmap,String text){				int x = bitmap.getWidth();				int y = bitmap.getHeight();				// 创建一个和原图同样大小的位图		Bitmap newbit = Bitmap.createBitmap(x, y, Bitmap.Config.ARGB_8888);				Canvas canvas = new Canvas(newbit);				Paint paint = new Paint();				// 在原始位置0,0插入原图		canvas.drawBitmap(bitmap, 0, 0, paint);				paint.setColor(Color.parseColor("#dedbde"));				paint.setTextSize(20);				// 在原图指定位置写上字		canvas.drawText(text, 53 , 30, paint);				canvas.save(Canvas.ALL_SAVE_FLAG);				// 存储		canvas.restore();				return newbit;	}

?

1 楼 jn615 2010-08-16  
return newbit; 
之后呢?如何处理呀?我想知道怎么把newbit写道文件夹下
2 楼 bashenmail 2010-08-18  
jn615 写道
return newbit; 
之后呢?如何处理呀?我想知道怎么把newbit写道文件夹下


Bitmap 有个这个方法:
boolean compress(Bitmap.CompressFormat format, int quality, OutputStream stream)

其中stream 即是你的输出流

参数:
format The format of the compressed image
quality Hint to the compressor, 0-100. 0 meaning compress for small size, 100 meaning compress for max quality. Some formats, like PNG which is lossless, will ignore the quality setting
stream The outputstream to write the compressed data.
File f = new File("your path");
FileOutputStream output = new FileOutputStream(f);
//mBitmap 即为 return newbit
mBitmap.compress(Bitmap.CompressFormat.PNG, 100, output);
output.flush();
output.close();

异常请自己捕捉,我就不写了。
3 楼 elena_java 2010-09-21  
字串太长不能自动换行怎么办?!
  相关解决方案