Android Api Demos登顶之路(九十三)Graphics-->Vertices
来源:互联网 发布:殷保华用什么软件炒股 编辑:程序博客网 时间:2024/06/01 09:10
/* * 这个demon演示了顶点的绘制 */public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(new SampleView(this)); } private class SampleView extends View { private Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); // 定义顶点的坐标数组 private float[] mVerts = new float[10]; // 定义纹理数组 private float[] mTexs = new float[10]; private float[] mTexs2 = new float[10]; // 定义顶点的绘制顺序数组 private short[] mIndices = new short[] { 0, 1, 2, 3, 4, 1 }; private Matrix mMatrix = new Matrix(); private Matrix mInverse = new Matrix(); private Bitmap bm; private void setXY(float[] array, int index, float x, float y) { array[index * 2] = x; array[index * 2 + 1] = y; } public SampleView(Context context) { super(context); setFocusable(true); bm = BitmapFactory.decodeResource(getResources(), R.drawable.beach); Shader s = new BitmapShader(bm, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); mPaint.setShader(s); float w = bm.getWidth(); float h = bm.getHeight(); setXY(mTexs, 0, w / 2, h / 2); setXY(mTexs, 1, 0, 0); setXY(mTexs, 2, w, 0); setXY(mTexs, 3, w, h); setXY(mTexs, 4, 0, h); setXY(mTexs2, 0, w / 3, h / 3); setXY(mTexs2, 1, w, 0); setXY(mTexs2, 2, 0, 0); setXY(mTexs2, 3, 0, h); setXY(mTexs2, 4, w, h); setXY(mVerts, 0, w / 2, h / 2); setXY(mVerts, 1, 0, 0); setXY(mVerts, 2, w, 0); setXY(mVerts, 3, w, h); setXY(mVerts, 4, 0, h); // 矩阵缩放 mMatrix.setScale(0.6f, 0.6f); // 平移,参数为横向和纵向的平移距离 mMatrix.preTranslate(20, 20); // 矩阵反转 mMatrix.invert(mInverse); } @Override protected void onDraw(Canvas canvas) { canvas.drawColor(0xffcccccc); canvas.save(); canvas.concat(mMatrix); // canvas.drawBitmap(bm, 0, 0, mPaint); /* * 绘制顶点:第一个参数表示顶点的模式。TRIANGLE_FAN表示以一个点为三角形公共顶点,组成一系列相邻的三角形。 * 第二个参数表示顶点坐标数组的长度,一个坐标由x和y两个值组成,所以该参数一定为偶数 * 第三个参数表示顶点坐标数组;第四个参数顶点坐标数组的偏移量; 第五个参数表示纹理坐标数组;第六个参数为纹理坐标数组的偏移量 * 第七个参数颜色数组,直接用颜色渲染顶点;第八个参数颜色数组的偏移量 第九个参数顶点绘制的索引;第十个参数顶点索引的偏移量 * 第十一个参数表示绘制的索引数量,第十二个参数表示画笔 */ canvas.drawVertices(Canvas.VertexMode.TRIANGLE_FAN, 10, mVerts, 0, mTexs, 0, null, 0, null, 0, 0, mPaint); canvas.translate(200, 0); canvas.drawVertices(Canvas.VertexMode.TRIANGLE_FAN, 10, mVerts, 0, mTexs2, 0, null, 0, null, 0, 0, mPaint); canvas.translate(-200, 240); canvas.drawVertices(Canvas.VertexMode.TRIANGLE_FAN, 10, mVerts, 0, mTexs, 0, null, 0, mIndices, 0,6, mPaint); canvas.translate(200, 0); canvas.drawVertices(Canvas.VertexMode.TRIANGLE_FAN, 10, mVerts, 0, mTexs2, 0, null, 0, mIndices, 0,6, mPaint); canvas.restore(); /* * canvas.save(); canvas.drawBitmap(bm, 10, 200, mPaint); * canvas.restore(); */ } }}
0 0
- Android Api Demos登顶之路(九十三)Graphics-->Vertices
- Android Api Demos登顶之路(六十五)Graphics-->AlphaBitmap
- Android Api Demos登顶之路(六十七)Graphics-->Arcs
- Android Api Demos登顶之路(六十八)Graphics-->DecodeBitmap
- Android Api Demos登顶之路(七十一)Graphics-->Cliping
- Android Api Demos登顶之路(七十三)Graphics-->Compass
- Android Api Demos登顶之路(七十四)Graphics-->CreateBitmap
- Android Api Demos登顶之路(七十五)Graphics-->GradientDrawable
- Android Api Demos登顶之路(七十六)Graphics-->ShapeDrawable
- Android Api Demos登顶之路(七十七)Graphics-->FingerPaint
- Android Api Demos登顶之路(七十八)Graphics-->MeansureText
- Android Api Demos登顶之路(七十九)Graphics-->PathEffects
- Android Api Demos登顶之路(八十)Graphics-->PathFillTypes
- Android Api Demos登顶之路(八十一)Graphics-->Patterns
- Android Api Demos登顶之路(八十二)Graphics-->Picture
- Android Api Demos登顶之路(八十三)Graphics-->Point
- Android Api Demos登顶之路(八十四)Graphics-->PolyToPoly
- Android Api Demos登顶之路(八十五)Graphics-->PurgeableBitmap
- eclipse运行web项目的保存位置
- 合并有序链表
- 【SQL优化】B树索引位图转换及OR到UNION(ALL)的改写
- opencv2常用函数记录
- AllJoy Core Framework
- Android Api Demos登顶之路(九十三)Graphics-->Vertices
- model的使用
- linux 串口工具的安装
- mysql和eclipse连接jdbc驱动配置
- ios 地图与定位(用户位置)
- vim文档编辑,转载自实验楼
- S3C2440的存储器映射(27根地址线如何寻找1G的地址)
- 评估图像质量评价算法性能的几个常用的标准
- UVALive 6067 Bit Magic 通过三个位运算约束求是否有解 2-sat