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>

运行效果如下

更多相关文章

  1. Android(安卓)Map demo
  2. AndroidWebView的使用
  3. Android之圆形旋转动画
  4. android 图片压缩工具类
  5. android旋转图像Matrix
  6. 『ANDROID』Android实现图片缩放与旋转
  7. Android之补间动画和属性动画
  8. android BitmapUtil 工具类
  9. Android中图片Bitmap的缩放

随机推荐

  1. Android(安卓)判断当前的界面是否是桌面
  2. Android之jni深入
  3. 【Android(安卓)studio】为按钮添加简单
  4. 如何进行adb模式下的调试
  5. [置顶] popwindow的基本使用
  6. android的make错误
  7. Android(安卓)自定义camera
  8. Android关于PagerAdapter的使用方法的总
  9. Android(安卓)9.0 适配
  10. Android(安卓)studio 添加依赖库的方法