VectorDrawableCompat y lona giran, dibujable desaparece en 90/270 grados
Estoy tratando de utilizar dibujos vectoriales para dibujar en lienzo. Todo está bien y dandy hasta que giro el objeto de la lona por 90 o 270 grados. Más cerca llego a 90 o 270 grados, más borrosa el dibujable mostrado en lona aparece. Finalmente a 90 o 270 grados, el vector dibujable sobre lienzo desaparece por completo. ¿Hay algún tipo de solución o solución para esto? ¿O debo acercarme a dibujar en lienzo con svg's con alguna otra biblioteca? ¡Gracias!
Aquí está el código:
- Android cómo cambiar el tamaño (escala) de un icono de vector xml mediante programación
- VectorDrawable: ¿Cómo posicionarlo sobre lienzo?
- Android vectorDrawables.useSupportLibrary = true está deteniendo la aplicación
- Biblioteca de soporte VectorDrawable Resources $ NotFoundException
- Herramientas para crear AnimatedVectorDrawable
public class CanvasView extends View { private static final String TAG = "CanvasView"; private VectorDrawableCompat vectorDrawableCompat; private int angle; public CanvasView(Context context) { super(context); init(); } public CanvasView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public CanvasView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); init(); } private void init(){ vectorDrawableCompat = VectorDrawableCompat.create(getResources(), R.drawable.ic_android_black_24dp, null); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); vectorDrawableCompat.setBounds((getWidth()/2) - 50, (getHeight()/2) - 50, (getWidth()/2) + 50, (getHeight()/2) + 50); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); canvas.save(); canvas.rotate(angle, getWidth()/2, getHeight()/2); vectorDrawableCompat.draw(canvas); canvas.restore(); } public void setAngle(int angle){ Log.i(TAG, "setAngle: " + angle); this.angle = angle; invalidate(); } }
Aquí está el proyecto: https://github.com/danskiess/VectorTest
- AppCompatDrawableManager.get () vs VectorDrawableCompat.create ()
- Vector dibujable no dibujado correctamente en Android Studio
- Android VectorDrawable como dibujos compuestos
- Coracteres corrompidos o desaparecidos después de ejecutar Proguard
- ¿Por qué mi SVG no se carga en Vector Asset Studio
- No se puede usar la casilla de verificación en eclipse con el complemento de adt de Android
- AnimatedVectorDrawable en la biblioteca de soporte y animación de "pathData"
- Android: obtener recursos $ NotFoundException para abc_ic_ab_back_material
Esto se ha solucionado en el marco de android. https://code.google.com/p/android/issues/detail?id=192413
Una solución posible para este caso de rotación podría ser simplemente dibujar VectorDrawable en un mapa de bits y, a continuación, girar el mapa de bits.