2015-07-12 11 views
14

मैं कस्टम व्यू ग्रुप लेआउट आकार बनाने की कोशिश कर रहा हूं, कि लेआउट स्टार या दिल, त्रिकोण या यहां तक ​​कि लाइनों को विकर्ण बनाते हैं।एंड्रॉइड कस्टम लेआउट आकार

तो लक्ष्य दो या अधिक छवि दृश्यों के लिए कोलाज दृश्य बनाना है। triangle layouts

hearts layouts

किसी ने मुझे एक पुस्तकालय या इस चाल करने के लिए एक रास्ता दे सकते हैं?

+0

कैनवास का उपयोग करने के लिए "ImageViews" के साथ ऐसा करने का कोई आसान तरीका नहीं है। – doubleA

+0

मैं इसे ImageViews पर लागू नहीं करना चाहता, मैं इसे ViewGroups के लिए करना चाहता हूं। –

+0

@ मारवानजकारिया आप इसका उत्तर पाने में सक्षम हैं अगर इसे कार्यान्वित किया जाता है तो यह अच्छा लगता है – SAVVY

उत्तर

9

आप Canvas और BitmapShader के मानक विधियों का उपयोग कर इसे प्राप्त कर सकते हैं।

सबसे पहले विधि ऐसा दिखाई दे सकता:

@Override protected void onDraw(Canvas canvas) { 
    //bitmap 01 
    canvas.save(Canvas.CLIP_SAVE_FLAG); 
    canvas.clipPath(shape01); 
    canvas.drawBitmap(bitmap01, 0, 0, paint); 
    canvas.restore(); 

    //bitmap 02 
    canvas.save(Canvas.CLIP_SAVE_FLAG); 
    canvas.clipPath(shape02); 
    canvas.drawBitmap(bitmap02, 0, 0, paint); 
    canvas.restore(); 
} 

दूसरा ऐसा दिखाई दे सकता:

BitmapShader shader01 = new BitmapShader(bitmap01, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); 
BitmapShader shader02 = new BitmapShader(bitmap02, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP); 
Paint paint01 = new Paint(); 
Paint paint02 = new Paint(); 
paint01.setShader(shader01); 
paint02.setShader(shader02); 

@Override protected void onDraw(Canvas canvas) { 
    //bitmap 01 
    canvas.drawPath(path01, paint01); 

    //bitmap 02 
    canvas.drawPath(path02, paint02); 
} 

तो आप अपने आकार, लोड बिटमैप्स को परिभाषित करने और उन्हें आकर्षित करने के लिए की जरूरत है।

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