最近研究android的2D图形,在android中,画多边形的方法很多,这里提供一个简单的方法。
用Path来实现。

Path path = new Path();
path.moveTo(50, 50);
path.lineTo(100, 50);
path.lineTo(100, 0);
path.lineTo(150, 0);
path.lineTo(150, 50);
path.lineTo(200, 50);

path.lineTo(200, 100);
path.lineTo(250, 100);
path.lineTo(250, 150);
path.lineTo(200, 150);
path.lineTo(200, 200);

path.lineTo(150, 200);
path.lineTo(150, 250);
path.lineTo(100, 250);
path.lineTo(100, 200);
path.lineTo(50, 200);

path.lineTo(50, 150);
path.lineTo(0, 150);
path.lineTo(0, 100);
path.lineTo(50, 100);

path.close();

//生成多边形
mDrawable = new ShapeDrawable(new PathShape(path, 250, 250));
//mDrawable.getPaint().setColor(Color.RED);

Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.test);
Bitmap b1 = Bitmap.createBitmap(bitmap, 0, 0, 250, 250); //生成符合多边形大小的位图,避免出现分辨率问题
Shader aShader = new BitmapShader(b1, Shader.TileMode.REPEAT, Shader.TileMode.REPEAT);
mDrawable.getPaint().setShader(aShader); //填充位图

mDrawable.setBounds(0,0,250,250); //设置边界尺寸

最终生成如图示

原文地址:http://www.xiaojxiao.net/?p=49

更多相关文章

  1. Ndk(jni)调用第三方的so库
  2. Android学习(三)
  3. android编译步骤
  4. Android:CourseTableLayout — 好用的Android自动生成课程表的自
  5. Android生成keystore是报错拒绝访问
  6. android截屏代码:C++实现
  7. Quick_Cocos2d_x V3.3 Protobuf Android
  8. 2012.08.23——— android ndk 编译多个so
  9. Android: MediaScanner生成thumbnail的算法

随机推荐

  1. SQL文结果集起别名
  2. DRP系统中用户增删改查(分页)Model1模式
  3. 是否有.Net的动态Sql构建器库?
  4. 外网远程连接局域网内的多台SQL服务器,请
  5. PL/SQL中在package里定义的常量与在packa
  6. mysql随机取出若干条记录的实用方法
  7. 十万火急!如何远程复制sql2000数据库
  8. 求SQL语句,有没有周末上班的高手,给帮个忙
  9. 谁能给我讲讲用C#在windows mobile上开发
  10. Sql Server系列:Insert语句