首页 > 代码库 > android前台渲染图片
android前台渲染图片
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前台渲染图片
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。