2016-03-13 6 views
5

पर गायब हो जाता है मैं कैनवास में आकर्षित करने के लिए वेक्टर ड्रॉबल्स का उपयोग करने की कोशिश कर रहा हूं। जब तक मैं कैनवास ऑब्जेक्ट को 90 या 270 डिग्री तक घुमाता हूं तब तक सब कुछ ठीक और बेवकूफ होता है। करीब मुझे 9 0 या 270 डिग्री मिलते हैं, कैनवास में दिखाए गए ड्रॉबल को और अधिक धुंधला दिखाई देता है। अंततः 90 या 270 डिग्री पर, कैनवास पर खींचा जाने वाला वेक्टर पूरी तरह से गायब हो जाता है। क्या इसके लिए कुछ प्रकार का फिक्स या वर्कअराउंड है? या क्या मुझे कुछ अन्य लाइब्रेरी के साथ svg के साथ कैनवास में ड्राइंग करना चाहिए? धन्यवाद! यहाँवेक्टर ड्रावेबल कॉम्पैस और कैनवास घूमते हैं, ड्रॉइंग 90/270 डिग्री

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(); 
} 
} 

परियोजना है:

कोड यह https://github.com/danskiess/VectorTest

उत्तर

1

यह एंड्रॉयड ढांचे में तय किया गया है। https://code.google.com/p/android/issues/detail?id=192413

इस घूर्णन मामले के लिए एक संभावित कामकाज सिर्फ वेक्टर ड्रायबल को बिटमैप में खींच सकता है, फिर बिटमैप घुमाएं।

+0

आह, इस मुद्दे को देखने की कोशिश की, लेकिन स्पष्ट रूप से मैंने इसे याद किया। जवाब के लिए धन्यवाद। क्या आपको पता है कि यह समर्थन लाइब्रेरी के लिए भी तय किया जाएगा? – Daniel

+0

हां, यह समर्थन lib में तय किया गया है। यदि कोई मुद्दा स्पॉट है, तो समर्थन lib के खिलाफ एओएसपी बग की रिपोर्ट करने में संकोच न करें। –

संबंधित मुद्दे