如何在Android中创建任意形状的动态虚线或点线边框? 可以使用XML(首选)或以编程方式实现。
请参见下面的图片示例。
如何在Android中创建任意形状的动态虚线或点线边框? 可以使用XML(首选)或以编程方式实现。
请参见下面的图片示例。
你是否看过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()...)。
XML... 我想不可能。但是你可以使用自定义视图或SurfaceView,并自己处理绘图。玩得开心 :)
你可以使用两个9patch图片形成一个背景框架,放在你想呈现的图像文件周围,一个在两个布局中的每一个。这些图片在虚线元素的放置方面会有所不同。快速切换视图(可能需要延迟),你可能会得到想要的效果。但不知道这是否对让用户继续使用应用程序和节省电池有多大帮助...