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.

  • Picasso y contexto
  • Cómo combinar dos APK en solo para que ambas aplicaciones se pueden instalar al mismo tiempo
  • Problema de desplazamiento infinito con EndlesScroll Android
  • API de reconocimiento de sonido, SDK (Android)
  • ¿Se admite Google Play Store en los emuladores de avd?
  • Cómo pasar AttributSet a la vista personalizada
  • 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.

  • ¿Mostrar una miniatura borrosa antes de descargar toda la imagen (como en Whatsapp)?
  • Android: Descripción de OnDrawFrame, FPS y VSync (OpenGL ES 2.0)
  • Solicitud de HttpClient simultánea utilizando varias AsyncTasks
  • Obtener el tamaño mostrado de una imagen dentro de un ImageView
  • ¿Cuándo usar actores en libgdx? ¿Cuáles son contras y pros?
  • La etiqueta languageLevel de Android .idea / misc.xml sigue cambiando JDKs
  • 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.