自己填充int数组,生成bitmap,显示一张纯色图。

来源:互联网 发布:轻松的工作 知乎 编辑:程序博客网 时间:2024/05/02 00:24
package com.example.surfaceviewdemo2;import android.content.Context;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.view.SurfaceHolder;import android.view.SurfaceView;public class MainActivity extends ActionBarActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(new MyView(this));}private class MyView extends SurfaceView implements SurfaceHolder.Callback {/** * @param context */SurfaceHolder holder;public MyView(Context context) {super(context);// TODO Auto-generated constructor stubholder = this.getHolder();holder.addCallback(this);}@Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {// TODO Auto-generated method stub}@Overridepublic void surfaceCreated(SurfaceHolder holder) {// TODO Auto-generated method stubnew Thread(new MyThread()).start();}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {// TODO Auto-generated method stub}class MyThread implements Runnable {@Overridepublic void run() {Canvas canvas = holder.lockCanvas(null);// 获取画布Paint mPaint = new Paint();int width = 720;int height = 1280;int[] newPx = new int[width * height];int r, g, b, a;for (int i = 0; i < width * height; i++) {a = 255;r = 0;g = 0;b = 255;newPx[i] = Color.argb(a, r, g, b);}// Bitmap piexTmpBitmap = Bitmap.createBitmap(newPx,// 720, 1280, Bitmap.Config.RGB_565);// 里面的mBuffer是 有符号字节// 格式是:rbgABitmap piexTmpBitmap = Bitmap.createBitmap(newPx, 720, 1280,Bitmap.Config.ARGB_8888);canvas.drawBitmap(piexTmpBitmap, 0, 0, mPaint);holder.unlockCanvasAndPost(canvas);}}}}

原创粉丝点击