BitmapShader图片渲染

来源:互联网 发布:win7网络发现启用不了 编辑:程序博客网 时间:2024/05/18 01:20
import org.apache.http.client.CircularRedirectException;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapShader;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Shader;import android.graphics.drawable.BitmapDrawable;import android.graphics.drawable.ShapeDrawable;import android.graphics.drawable.shapes.OvalShape;import android.view.View;/** * @version 2012-8-14 上午10:45:28 **/public class BitGameView extends View implements Runnable {    Bitmap mBitmap = null;    int bitwidth = 0;    int bitheight = 0;    Paint mPaint = null;    // bitmap渲染    Shader mBitmapShader = null;    ShapeDrawable mShapeDrawable = null;    public BitGameView(Context context) {        super(context);        // 装载资源        mBitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.abc))                .getBitmap();        // 得到宽高        bitwidth = mBitmap.getWidth();        bitheight = mBitmap.getHeight();        // 创建BitmapShader对象 已何种方式重复        mBitmapShader = new BitmapShader(mBitmap, Shader.TileMode.CLAMP,                Shader.TileMode.CLAMP);        mPaint = new Paint();        new Thread(this).start();    }    @Override    protected void onDraw(Canvas canvas) {        // 自定义为椭圆形        mShapeDrawable = new ShapeDrawable(new OvalShape());        // RectShape矩形        // ArcShape弧形        // PathShape任意多边形        // RoundRectShape圆角矩形        // OvalShape椭圆        // 设置要绘制的椭圆形的图片        mShapeDrawable.getPaint().setShader(mBitmapShader);        // 设置显示区域        mShapeDrawable.setBounds(0, 0, bitwidth * 2, bitheight * 2);        // 绘制图片        mShapeDrawable.draw(canvas);    }    @Override    public void run() {        while(!Thread.currentThread().isInterrupted()) {            try {                Thread.sleep(100);            }            catch(Exception e) {                Thread.currentThread().interrupt();            }            postInvalidate();        }    }}

原创粉丝点击