圖形與動畫在Android中的實現

來源:互聯網
上載者:User

標籤:android   blog   class   code   java   c   

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 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, 1010, 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();               }   }

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.