【Bitmap】

Android几种简单的获取Bitmap位图实例
1、通过BitmapFactory获取

BitmapFactory.decodeResource(Resources res, int Id); //参数一:资源实例 参数二:资源ID

2、通过Bitmap获取任意宽高或获取位图中任意区域

Bitmap.createBitmap(Bitmap source, int x, int y, int width, int height);//参数一:位图资源

3获取一个BitmapDrawable包装的Bitmap对象
Bitmap bitmap=drawable.getBitmap();

【Matrix】

Matrix ,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放、平移、旋转等操作。
下面直接操作

public class MyBitmapView extends View {    private int width;    private int height;    private Paint paint;    private Matrix matrix;    private int BitmapWidth;    private int BitmapHeight;    private Bitmap bitmap;    public MyBitmapView(Context context, AttributeSet attrs) {        super(context, attrs);        paint=new Paint();        paint.setAlpha(150);        matrix=new Matrix();    }    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        bitmap= BitmapFactory.decodeResource(getResources(), R.mipmap.abc);        canvas.drawBitmap(bitmap, 0, 0, paint);        BitmapHeight=bitmap.getHeight();        BitmapWidth=bitmap.getWidth();        //缩放        matrix.reset();        matrix.postScale(2, 2) ;        canvas.drawBitmap(bitmap, matrix, paint);        //平移        matrix.reset();        matrix.postTranslate(0, BitmapHeight);        canvas.drawBitmap(bitmap, matrix, paint);        //旋转180°,平移        matrix.reset();        matrix.postRotate(180);        matrix.postTranslate(BitmapWidth * 3, BitmapHeight * 3);        canvas.drawBitmap(bitmap, matrix, paint);        //侧切        matrix.reset();        matrix.postSkew(0, 1);        canvas.drawBitmap(bitmap, matrix, paint);        //水平对称        matrix.reset();        float matrix_values[]={1f,0f,0f,0f,-1f,0f,0f,0f,1f};        matrix.setValues(matrix_values);        matrix.postTranslate(0, BitmapHeight * 3);        canvas.drawBitmap(bitmap, matrix, paint);       //垂直对称        matrix.reset();        float matrix_values2[]={-1f,0f,0f,0f,1f,0f,0f,0f,1f};        matrix.setValues(matrix_values2);        matrix.postTranslate(BitmapWidth*3,0);        canvas.drawBitmap(bitmap,matrix,paint);    }    @Override    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {        super.onMeasure(widthMeasureSpec, heightMeasureSpec);        width = getDefaultSize(getSuggestedMinimumWidth(), widthMeasureSpec);        height = getDefaultSize(getSuggestedMinimumHeight(), heightMeasureSpec);        setMeasuredDimension(width, height);    }}

更多相关文章

  1. Android(安卓)如何获取SDCard 内存(二)
  2. Android中画图总结(2)
  3. 热修复
  4. Android(安卓)应用跳转到指定QQ临时聊天界面
  5. android之PackageManager简介
  6. [Android]根据名称name来获取string的值
  7. Android: SDCard容量计算
  8. Android(安卓)Bitmap详解
  9. Android(安卓)项目如何获取MD5和SHA1

随机推荐

  1. HTML表格实战:制作商品信息表格
  2. 简述事件委托(事件代理)
  3. 请简述 DOM 事件模型或 DOM 事件机制
  4. HTML表格标签及合并行列使用
  5. 注册表单练习
  6. 前端作业-表单
  7. 第二天 HTML标签与属性
  8. 我们常说的算法时间复杂度和空间复杂度到
  9. 手机商品信息表
  10. 表格信息练习