android图像相关

来源:互联网 发布:东方财富软件 编辑:程序博客网 时间:2024/06/06 09:20

首先是Bitmap:

从资源文件中得到bitmap有两种方式:

一:

Resources r = getResources();InputStream is = r.openRawResource(R.drawable.icon);BitmapDrawable bmpDraw = new BitmapDrawable(is);Bitmap bmp1 = bmpDraw.getBitmap();
二:

BitmapDrawable drawable = (BitmapDrawable)r.getDrawable(R.drawable.icon)




一下是画各种图形,首先写了一个画图形的接口:

package com.song.ui;import android.graphics.Canvas;public interface drawGraphics{public void draw(Canvas canvas);}

然后花各种图形的时候实现接口:

画线:

package com.song.ui;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;/** * 画线 * @author song * */public class DrawLine implements drawGraphics{//声明一个画笔private Paint mPaint;public DrawLine(){mPaint = new Paint();}@Overridepublic void draw(Canvas canvas){//消除锯齿mPaint.setAntiAlias(true);//直线 颜色:绿色mPaint.setColor(Color.GREEN);//设置线条粗细mPaint.setStrokeWidth(12);//画两条直线canvas.drawLine(90, 40, 140, 90, mPaint);canvas.drawLine(290, 90, 340, 40, mPaint);}}

画圆:

package com.song.ui;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF;/** * 画圆 * @author song * */public class DrawCircle implements drawGraphics{private Paint paint ;private Paint paint_eye;public DrawCircle(){paint= new Paint();paint_eye=new Paint();}@Overridepublic void draw(Canvas canvas){//绘制圆形(圆心X,圆心Y,半径R,画笔P)paint_eye.setAntiAlias(true);paint.setAntiAlias(true);RectF rectF= new RectF(90, 60, 340, 240);paint_eye.setColor(Color.WHITE);paint.setColor(Color.GREEN);canvas.drawArc(rectF, 180, 180, true, paint);//画两个眼睛canvas.drawCircle(160, 110, 18, paint_eye);canvas.drawCircle(270, 110, 18, paint_eye);}}

画矩形:

package com.song.ui;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF;/** * 画矩形 *  * @author song *  */public class DrawRect implements drawGraphics{private Paint paint;public DrawRect(){paint = new Paint();}@Overridepublic void draw(Canvas canvas){// 定义圆角矩形对象RectF rectF1 = new RectF(90, 170, 340, 500);RectF rectF2 = new RectF(10, 150, 60, 400);RectF rectF3 = new RectF(360, 150, 410, 400);RectF rectF4 = new RectF(110, 520, 170, 650);RectF rectF5 = new RectF(260, 520, 320, 650);paint.setAntiAlias(true);// 设置画笔颜色为BLUEpaint.setColor(Color.GREEN);// 在画布上绘制圆角矩形/圆弧/直线canvas.drawRoundRect(rectF1, 20, 20, paint);canvas.drawRoundRect(rectF2, 20, 20, paint);canvas.drawRoundRect(rectF3, 20, 20, paint);canvas.drawRoundRect(rectF4, 20, 20, paint);canvas.drawRoundRect(rectF5, 20, 20, paint);}}

这个可以画出来一个Android的机器人,

工程名:TL03_graphics_test