如何在Android中创建任意形状的动画虚线或虚线边框?在XML(首选)或以编程方式。
参见下面的图片。
答案 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);
然后用:
创建一个虚线PathEffectPathEffect 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图像作为要呈现的图像文件的背景框架,在两个布局中各有一个。图像在虚线元素的放置方面会有所不同。快速交换视图(可能需要延迟),您可能会得到您想要的效果。不知道在能够让用户继续使用应用程序和咀嚼电池方面有多么有效......