Sto provando a usare i drawable vettoriali per disegnare su tela. Tutto va bene e dandy fino a quando ruoto l'oggetto di tela di 90 o 270 gradi. Più vicino ottengo 90 o 270 gradi, più sfocato appare il disegnabile mostrato nella tela. Alla fine a 90 o 270 gradi, il vettore disegnabile su tela scompare completamente. C'è una sorta di correzione o soluzione per questo? O dovrei avvicinarmi al disegno su tela con svg con qualche altra libreria? Grazie!VectorDrawableCompat e Canvas ruotano, disegnabili scompaiono a 90/270 gradi
Ecco il codice:
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();
}
}
Ecco il progetto: https://github.com/danskiess/VectorTest
Ah, ho cercato di cercare questo problema, ma a quanto pare l'ho perso. Grazie per la risposta. Sai se sarà corretto anche per la libreria di supporto? – Daniel
Sì, è stato risolto nella lib di supporto. In caso di problemi, non esitate a segnalare un bug AOSP contro il supporto lib. –