WEB开发网
开发学院手机开发Android 开发 Android Bitmap 和 Canvas 阅读

Android Bitmap 和 Canvas

 2010-03-19 07:16:00 来源:WEB开发网   
核心提示:转换为BitmapDrawable对象显示位图// 获取位图Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic180);// 转换为BitmapDrawable对象BitmapDrawable bmpDraw=new BitmapDrawable(bm

转换为BitmapDrawable对象显示位图

// 获取位图

Bitmap bmp=BitmapFactory.decodeResource(res, R.drawable.pic180);

// 转换为BitmapDrawable对象

BitmapDrawable bmpDraw=new BitmapDrawable(bmp);

// 显示位图

ImageView iv2 = (ImageView)findViewById(R.id.ImageView02);

iv2.setImageDrawable(bmpDraw);

使用Canvas类显示位图

这儿采用一个继承自View的子类Panel,在子类的OnDraw中显示

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);

}

}

}4. 位图缩放

(1)将一个位图按照需求重画一遍,画后的位图就是我们需要的了,与位图的显示几乎一样:drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint)。

(2)在原有位图的基础上,缩放原位图,创建一个新的位图:CreateBitmap(Bitmap source, int x, int y, int width, int height, Matrix m, boolean filter)

(3)借助Canvas的scale(float sx, float sy) (Preconcat the current matrix with the specified scale.),不过要注意此时整个画布都缩放了。

(4)借助Matrix:

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.pic180);

Matrix matrix=new Matrix();

matrix.postScale(0.2f, 0.2f);

Bitmap dstbmp=Bitmap.createBitmap(bmp,0,0,bmp.getWidth(),

bmp.getHeight(),matrix,true);

canvas.drawColor(Color.BLACK);

上一页  1 2 3 4  下一页

Tags:Android Bitmap Canvas

编辑录入:coldstar [复制链接] [打 印]
赞助商链接