android第三天晚:绘图

视频:善知堂Android   http://www.verycd.com/topics/2915940/

今天加班 10点多才到家

第三集 绘图2

 1.绘不同的图形。

class GameView extends View {

        private Paint paint = null;

        public GameView(Context context) {
            super(context);
            paint = new Paint();//画笔
        }

        @Override
        protected void onDraw(Canvas canvas) {
            // TODO Auto-generated method stub
            super.onDraw(canvas);
            paint.setColor(Color.RED);
            paint.setStrokeWidth(5);// 画笔粗
            canvas.drawLine(0, 0, 100, 111, paint);// 画一条线
            Path path = new Path(); // 画自定义图形,多边形。。
            path.moveTo(110, 110);
            path.lineTo(300, 100);
            path.lineTo(180, 400);
            path.close(); //完成图形,回起点。
            canvas.drawPath(path, paint); //可以不画出来
            canvas.drawText("helloworld", 100, 50, paint);
            // 沿着路径画字符串
            canvas.drawTextOnPath("11111111111111112dsfdsfdsfsdfsdfsfsdf11111111111111112dsfdsfdsfsdfsdfsfsdf11111112",
                    path, 0, 0, paint);
            
        }
    }

这是结果,数字会围绕着图形。字符串长度超过图形的话,后面自动被截断。

2.使用图片

使用Bitmap (位图)

this.getResources() 获得资源目录。可以获得string,layout,drawable。

@Override
        protected void onDraw(Canvas canvas) {
            super.onDraw(canvas);
            Bitmap bitmap = ((BitmapDrawable) this.getResources().getDrawable(
                    R.drawable.ic_launcher)).getBitmap();// 位图
            // 第二种取图片的方法
            Bitmap bitmap2 = BitmapFactory.decodeResource(this.getResources(),
                    R.drawable.ic_launcher);
            canvas.drawBitmap(bitmap, 0, 0, null);
            //src 是图片中取出部分,dst是将这部分画的位置
            Rect src =new Rect(24,24,49,49);
            Rect dst =new Rect(200,200,225,225);
            canvas.drawBitmap(bitmap2, src, dst, null);

        }

这个画图片中的一部分功能会非常使用,还有旋转,按比例放大,缩小,拉伸,倾斜等的功能。

matrix中set 是设置特效,使用post可以叠加特效  平移,倾斜,旋转,大小。pre是之前执行特效。

默认围绕一个中心点来进行,不指定的情况下围绕0,0为中心点

 

第三天晚 完

posted on 2012-07-04 23:29  DON'T PANIC  阅读(512)  评论(0编辑  收藏  举报

导航