android前台渲染图片
16lz
2021-01-23
android前台渲染,主要是重写view的ondraw方法,在canvas里操作
自定义MyView类
package com.ssln;import android.annotation.SuppressLint;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Matrix;import android.graphics.Paint;import android.util.AttributeSet;import android.view.View;public class MyView extends View { private Bitmap bitmap; //图片 private Paint paint; //画笔 public MyView(Context context, AttributeSet attrs) { super(context, attrs); initBitmap(); } /** * 初始化信息 */ public void initBitmap() { //实例化画笔 paint=new Paint(); //从资源中加载 bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.img); } @SuppressLint("DrawAllocation") @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); paint.setAntiAlias(true); //开启抗锯齿 paint.setColor(Color.BLACK); //设置画笔颜色 paint.setTextScaleX(15); //设置文字大小 canvas.drawBitmap(bitmap, 10,10, paint); //在10x10的位置画图片 canvas.save(); //保存画布状态 Matrix m1=new Matrix(); //矩阵 m1.setTranslate(500, 10); //平移 X500 Y10 Matrix m2=new Matrix(); m2.setRotate(15); //旋转15° Matrix m3=new Matrix(); m3.setConcat(m1, m2); //合并矩阵 m1.setScale(0.8f, 0.8f); //设置缩放比例 m2.setConcat(m3, m1); //合并 canvas.drawBitmap(bitmap, m2, paint); //画图,经过了平移,旋转,缩放 canvas.restore(); //恢复画布状态 canvas.save(); paint.setAlpha(180); //设置透明度 m1.setTranslate(200, 100); m2.setScale(1.3f, 1.3f); m3.setConcat(m1, m2); canvas.drawBitmap(bitmap, m3, paint); //画图,经过了平移,缩放 paint.reset(); //重置画笔 canvas.restore(); paint.setTextSize(24); paint.setColor(Color.BLACK); canvas.drawText("图片宽度:"+bitmap.getWidth(), 20,240, paint); //写文字,图像的宽度 canvas.drawText("图片高度:"+bitmap.getHeight(), 20,270, paint); paint.reset(); } }
修改activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.ssln.MainActivity" > <com.ssln.MyView android:layout_width="fill_parent" android:layout_height="fill_parent" /></RelativeLayout>
运行效果如下
更多相关文章
- Android中图片Bitmap的缩放
- 吹毛求疵android画图板(1)
- Android 缩放图片
- Android画图学习笔记一 类的简介
- android画图-解锁界面
- Android imageView图片按比例缩放(转)