Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Cómo dibujar un círculo con animación en android con el tamaño del círculo basado en un valor

Quiero desarrollar un componente personalizado que dibuje parte del círculo basado en valores diferentes. Por ejemplo, dibujar 1/4 cirle, 1/2 círculo, etc. El componente necesita ser animado para mostrar el proceso de dibujo. El círculo parcial se dibuja en la parte superior de una imagen estática, y pienso usar dos vistas, animadas una encima de la estática. Cualquier sugerencia de cómo desarrollar esto?

Puse la captura de pantalla para referencia.

  • Android NDK: ADVERTENCIA: APP_PLATFORM android-9 es más grande que android: minSdkVersion 8
  • ¿Es posible crear una aplicación de navegación GPS turn-by-turn en Android con Google Maps?
  • Librería de Android Gradle release JAR
  • Cómo agregar parámetros en android http post?
  • Cambiar el tema de la actividad de forma programática
  • Introducción a Android
  • Introduzca aquí la descripción de la imagen

    Por favor refiérase a la imagen, y consiga una sensación cómo se parece. ¡Gracias!

    Gracias por adelantado.

  • Android requiere el nivel de cumplimiento del compilador 5.0 o 6.0. Se encontró '1.7' en su lugar. Utilice Herramientas de Android> Fijar propiedades del proyecto
  • Antiguas versiones de Android NDK
  • ¿Cuál es la diferencia entre Thread.setPriority () y android.os.Process.setThreadPriority ()
  • ¿Cómo dividir la pantalla con dos LinearLayouts iguales?
  • Java.lang.SecurityException: Permiso de denegación: proveedor de apertura com.google.android.apps.photos.content.GooglePhotosImageProvider
  • Android: detección de gestos de lanzamiento
  • One Solution collect form web for “Cómo dibujar un círculo con animación en android con el tamaño del círculo basado en un valor”

    Tienes que dibujar la vista de círculo, y después de eso debes crear una animación.

    Creación de la vista de círculo:

    public class Circle extends View { private static final int START_ANGLE_POINT = 90; private final Paint paint; private final RectF rect; private float angle; public Circle(Context context, AttributeSet attrs) { super(context, attrs); final int strokeWidth = 40; paint = new Paint(); paint.setAntiAlias(true); paint.setStyle(Paint.Style.STROKE); paint.setStrokeWidth(strokeWidth); //Circle color paint.setColor(Color.RED); //size 200x200 example rect = new RectF(strokeWidth, strokeWidth, 200 + strokeWidth, 200 + strokeWidth); //Initial Angle (optional, it can be zero) angle = 120; } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.drawArc(rect, START_ANGLE_POINT, angle, false, paint); } public float getAngle() { return angle; } public void setAngle(float angle) { this.angle = angle; } } 

    Creación de la clase de animación para establecer el nuevo ángulo:

     public class CircleAngleAnimation extends Animation { private Circle circle; private float oldAngle; private float newAngle; public CircleAngleAnimation(Circle circle, int newAngle) { this.oldAngle = circle.getAngle(); this.newAngle = newAngle; this.circle = circle; } @Override protected void applyTransformation(float interpolatedTime, Transformation transformation) { float angle = oldAngle + ((newAngle - oldAngle) * interpolatedTime); circle.setAngle(angle); circle.requestLayout(); } } 

    Ponga el círculo en su diseño:

     <com.package.Circle android:id="@+id/circle" android:layout_width="300dp" android:layout_height="300dp" /> 

    Y, finalmente, iniciar la animación:

     Circle circle = (Circle) findViewById(R.id.circle); CircleAngleAnimation animation = new CircleAngleAnimation(circle, 240); animation.setDuration(1000); circle.startAnimation(animation); 

    El resultado es: Introduzca aquí la descripción de la imagen

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.