Intereting Posts

Анимированная пунктирная граница в Android

Как вы создаете анимированную пунктирную или пунктирную границу произвольной формы в Android? В XML (желательно) или программно.

См. Рисунок ниже.

Alt text

Solutions Collecting From Web of "Анимированная пунктирная граница в Android"

Вы видели демо-версию 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); 

EDIT: анимированный эффект происходит от постоянного изменения фазы и перерисовки. В демоверсии API он вызывает invalidate () в методе onDraw () (который запускает onDraw () …)

XML … Я думаю, это невозможно. Но вы можете использовать пользовательский вид или SurfaceView и обрабатывать чертеж самостоятельно. Получайте удовольствие от этого 🙂

Не могли бы вы использовать одну форму из двух изображений 9patch в качестве фоновой рамки вокруг файла изображения, который вы хотите представить, по одному в каждом из двух макетов. Изображения будут отличаться с точки зрения размещения пунктирных элементов. Быстрое изменение взглядов (возможно, потребуется задержка), и вы можете получить необходимый эффект. Не знаю, насколько эффективно это было бы, хотя с точки зрения возможности позволить пользователю продолжать использовать приложение и жевать батарею …