zoukankan      html  css  js  c++  java
  • 图形与动画在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();
    		
    	}
    
    }
    

    效果图:

     

  • 相关阅读:
    ♫【网站优化】
    ☀【html】锚点
    ↗☻【PHP与MySQL动态网站开发(第4版本) #BOOK#】第1章 PHP概述
    _#【jQuery插件】Carousel 传送带
    _#【jQuery插件】Autocomplete 自动补全
    【兼容】ie6 hover
    【兼容】ie6/ie7 overflow:hidden;失效
    Online Mono for Android training now available in Spanish
    MonoDevelop 3.0.4 发布啦!
    猴子选大王的四种VB解法
  • 原文地址:https://www.cnblogs.com/leihupqrst/p/3722168.html
Copyright © 2011-2022 走看看