大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > Android技巧 > android前台渲染图片

android前台渲染图片(1)

关键词:前台渲染图片android  阅读(1097) 赞(19)

[摘要]本文是对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();
    
    }
 

}
«上一页12下一页»


相关评论