• 图形与动画在Android中的实现


    public class MyView extends View{
    	Bitmap myBitmap;
    	Paint paint;
    	public MyView(Context context, AttributeSet attrs) {
    		super(context, attrs);
    		this.initBitmap();
    	}
    	public void initBitmap(){
    		paint = new Paint();
    		myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.img);
    		
    	}
    	@Override
    	protected void onDraw(Canvas canvas) {
    		super.onDraw(canvas);
    		paint.setAntiAlias(true);
    		paint.setColor(Color.WHITE);
    		paint.setTextSize(15);
    		canvas.drawBitmap(myBitmap, 10,  10, paint);
    		
    		//Saves the current matrix and clip onto a private stack. 
    		//Subsequent calls to translate,scale,rotate,skew,concat or clipRect,clipPath 
    		//will all operate as usual, but when the balancing call to restore() is made, 
    		//those calls will be forgotten, and the settings that existed before the save() will be reinstated(恢复).
    		//Returns:
    		//The value to pass to restoreToCount() to balance this save()
    		int i = canvas.save();  
    		System.out.println("current count -- > " + i);
    		
    		Matrix m1 = new Matrix();
    		m1.setTranslate(500, 10);
    		Matrix m2 = new Matrix();
    		m2.setRotate(15);
    		Matrix m3 = new Matrix();
    		m3.setConcat(m1, m2);
    		m1.setScale(0.8f, 0.8f);
    		m2.setConcat(m3, m1);
    		canvas.drawBitmap(myBitmap, m2, paint);
    		
    		//This call balances a previous call to save(), and is used to 
    		//remove all modifications to the matrix/clip state since the last save call. 
    		//It is an error to call restore() more times than save() was called.
    		canvas.restore();
    		int j = canvas.save();
    		System.out.println("current count -- > " + j);
    		paint.setAlpha(180);
    		m1.setTranslate(200, 100);
    		m2.setScale(1.3f, 1.3f);
    		m2.setConcat(m1, m2);
    		canvas.drawBitmap(myBitmap, m3, paint);
    		
    		//Restores the paint to its default settings. 
    		paint.reset();
    		canvas.restore();
    		paint.setTextSize(40);
    		paint.setColor(Color.BLUE);
    		canvas.drawText("图片的宽度:" + myBitmap.getWidth(), 150, 220, paint);
    		canvas.drawText("图片的高度:" + myBitmap.getHeight(), 150, 300, paint);
    		paint.reset();
    		
    	}
    
    }
    

    效果图:

     

  • 相关阅读:
    javascript定义
    JavaScript学习笔记
    PostgreSQL数据库配置
    python 时间戳转时间 timestamp to time
    WebGIS:Vue+Flask+PostGIS+Geoserver开发环境配置
    GeoServer环境配置
    Vue前端环境配置
    Flask后端环境配置
    1.顺序表
    汇编语法--AT&T VS. intel
  • 原文地址:https://www.cnblogs.com/leihupqrst/p/3722168.html
Copyright © 2020-2023  润新知