我查看了 H&M Android 应用程序并试图弄清楚如何实现一些小部件。谁能知道这个图像框架是如何实现的?我可以猜到它使用openGL。
问问题
327 次
2 回答
1
我会冒险猜测;)
首先创建正面图像。在这种情况下,它是通过使用 ImageView 和 TextView 膨胀线性布局来构建的。然后将其缓存到位图(在设置阶段,而不是绘制时间)。
在 onDraw 中,该位图被绘制到屏幕上。然后剪裁画布以避免再绘制该区域。节省大量绘图时间,无需对透明像素进行四倍透支。
然后背景是这样绘制的:
for(int i = NUMBER_OF_LAYERS - 1; i > 0; i--) {
canvas.save();
float rotation = MAX_ANGLE * shiftModifier * ((float) i / (NUMBER_OF_LAYERS - 1));
canvas.rotate(rotation, mImageHalfWidth, mImageHalfHeight);
paint.setAlpha((int) (255f / (2 * i)));
canvas.drawRect(mBitmap.getBounds(), paint);
canvas.restore();
}
NUMBER_OF_LAYERS 是背景层数。
MAX_ANGLE 是最倾斜层的旋转角度。
shiftModifier 用于为背景层设置动画。它从零(背景完全隐藏)移动到一(背景角度 = MAX_ANGLE)。
油漆只是颜色设置为白色的油漆。
于 2013-02-06T10:58:36.043 回答
1
一个透明的png框架?这也可能是九个补丁!
于 2013-02-04T00:01:06.003 回答