Android中的动画虚线边框

时间:2010-08-25 07:58:30

标签: android animation border

如何在Android中创建任意形状的动画虚线或虚线边框?在XML(首选)或以编程方式。

参见下面的图片。

alt text

3 个答案:

答案 0 :(得分:19)

您是否看过PathEffects API演示? http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/graphics/PathEffects.html

它精确地生成动画线,您只需调整视图边缘的路径即可创建边框。例如:

通过视图参数/任意形状定义路径:

Path path = new Path();
path.addRect(view.getLeft(), view.getTop(), view.getRight(), view.getBottom(), Path.Direction.CW);

然后用:

创建一个虚线PathEffect
PathEffect pe = new DashPathEffect(new float[] {10, 5, 5, 5}, phase);

然后将其与Paint对象关联并绘制:

mPaint.setPathEffect(pe);
canvas.drawPath(path, mPaint);

编辑:动画效果来自不断改变阶段和重绘。在API演示中,它调用onDraw()方法中的invalidate()(触发onDraw()...)

答案 1 :(得分:0)

XML ......我想不可能。但您可以使用自定义视图或SurfaceView并自行处理绘图。玩得开心:))

答案 2 :(得分:0)

您是否可以使用某种形式的两个9patch图像作为要呈现的图像文件的背景框架,在两个布局中各有一个。图像在虚线元素的放置方面会有所不同。快速交换视图(可能需要延迟),您可能会得到您想要的效果。不知道在能够让用户继续使用应用程序和咀嚼电池方面有多么有效......