Android Bitmap相关[转]
Bitmap 相关
1. Bitmap比较特别 因为其不可创建 而只能借助于BitmapFactory 而根据图像来源又可分以下几种情况:
* png图片 如:R.drawable.tianjin
Java代码
Bitmap bmp = BitmapFactory.decodeResource(this.getResources(), R.drawable.tianjin);
Bitmap bmp = BitmapFactory.decodeFile("/sdcard/dcoim/tianjin.jpeg") File fImage = new File("/sdcard/dcim","beijing.jpeg"); FileOutputStream iStream = new FileOutputStream(fImage); oriBmp.compress(CompressFormat.JPEG, 100, iStream);
public void saveMyBitmap(String bitName) throws IOException { File f = new File("/sdcard/Note/" + bitName + ".png"); f.createNewFile(); FileOutputStream fOut = null; try { fOut = new FileOutputStream(f); } catch (FileNotFoundException e) { e.printStackTrace(); } mBitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut); try { fOut.flush(); } catch (IOException e) { e.printStackTrace(); } try { fOut.close(); } catch (IOException e) { e.printStackTrace(); } }String icoURI = "http://202.140.96.134:8080/FS-RSS/img/RN.png"; URL imgURL = new URL(iu); URLConnection conn = imgURL.openConnection(); conn.connect(); InputStream is = conn.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is);
Bitmap bmp = BitmapFactory.decodeStream(bis);
bis.close(); is.close();
InputStream is=res.openRawResource(R.drawable.pic180);BitmapDrawable bmpDraw=new BitmapDrawable(is);Bitmap bmp=bmpDraw.getBitmap();
BitmapDrawable bmpDraw=(BitmapDrawable)res.getDrawable(R.drawable.pic180);Bitmap bmp=bmpDraw.getBitmap();
// 获取位图 Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic180); // 转换为BitmapDrawable对象 BitmapDrawable bmpDraw=new BitmapDrawable(bmp); // 显示位图 ImageView iv2 = (ImageView)findViewById(R.id.ImageView02); iv2.setImageDrawable(bmpDraw);
public class MainActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new Panel(this)); } class Panel extends View{ public Panel(Context context) { super(context); } public void onDraw(Canvas canvas){ Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pic180); canvas.drawColor(Color.BLACK); canvas.drawBitmap(bmp, 10, 10, null); } }} * /** * * create the bitmap from a byte array * * * * @param src the bitmap object you want proecss * * @param watermark the water mark above the src * * @return return a bitmap object ,if paramter's length is 0,return null * */ * private Bitmap createBitmap( Bitmap src, Bitmap watermark ) * { * String tag = "createBitmap"; * Log.d( tag, "create a new bitmap" ); * if( src == null ) * { * return null; * } * * int w = src.getWidth(); * int h = src.getHeight(); * int ww = watermark.getWidth(); * int wh = watermark.getHeight(); * //create the new blank bitmap * Bitmap newb = Bitmap.createBitmap( w, h, Config.ARGB_8888 );//创建一个新的和SRC长度宽度一样的位图 * Canvas cv = new Canvas( newb ); * //draw src into * cv.drawBitmap( src, 0, 0, null );//在 0,0坐标开始画入src * //draw watermark into * cv.drawBitmap( watermark, w - ww + 5, h - wh + 5, null );//在src的右下角画入水印 * //save all clip * cv.save( Canvas.ALL_SAVE_FLAG );//保存 * //store * cv.restore();//存储 * return newb; * } int px = getMeasuredWidth();int py = getMeasuredWidth();// Draw backgroundcanvas.drawRect(0, 0, px, py, backgroundPaint);canvas.save();canvas.rotate(90, px/2, py/2); // Draw up arrowcanvas.drawLine(px / 2, 0, 0, py / 2, linePaint); canvas.drawLine(px / 2, 0, px, py / 2, linePaint);canvas.drawLine(px / 2, 0, px / 2, py, linePaint);canvas.restore();// Draw circlecanvas.drawCircle(px - 10, py - 10, 10, linePaint);