मैं ग्राफिक्स को कैनवास पर पेंट करना चाहता हूं जैसे कि रंग additive हैं। उदाहरण के लिए, मैं इस का उत्पादन करना चाहते हैं:
अल्फा के साथ कैसे पेंट करें?
लेकिन बजाय, मैं इस मिल:
ध्यान दें कि आधा सफेद, आधा काले रंग की पृष्ठभूमि जानबूझकर है, बस देखने के लिए कैसे अल्फा दोनों के साथ सूचना का आदान प्रदान पृष्ठभूमि। मैं इस काम को पृष्ठभूमि के साथ खुश कर दूंगा। यहाँ मेरी कोड है:
public class VennColorsActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
class VennView extends View {
public VennView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int alpha = 60, val = 255;
int ar = Color.argb(alpha, val, 0, 0);
int ag = Color.argb(alpha, 0, val, 0);
int ab = Color.argb(alpha, 0, 0, val);
float w = canvas.getWidth();
float h = canvas.getHeight();
float cx = w/2f;
float cy = h/2;
float r = w/5;
float tx = (float) (r * Math.cos(30 * Math.PI/180));
float ty = (float) (r * Math.sin(30 * Math.PI/180));
float expand = 1.5f;
Paint paint = new Paint();
paint.setColor(Color.WHITE);
canvas.drawRect(new Rect(0, 0, (int) w, (int) (h/2)), paint);
PorterDuff.Mode mode = android.graphics.PorterDuff.Mode.ADD;
paint = new Paint(Paint.ANTI_ALIAS_FLAG);
paint.setColorFilter(new PorterDuffColorFilter(ar, mode));
paint.setColor(ar);
canvas.drawCircle(cx, cy - r, expand * r, paint);
paint.setColorFilter(new PorterDuffColorFilter(ag, mode));
paint.setColor(ag);
canvas.drawCircle(cx - tx, cy + ty, expand * r, paint);
paint.setColorFilter(new PorterDuffColorFilter(ab, mode));
paint.setColor(ab);
canvas.drawCircle(cx + tx, cy + ty, expand * r, paint);
}
}
this.setContentView(new VennView(this));
}
}
किसी की मदद कृपया मुझे समझ कैसे एंड्रॉयड ग्राफिक्स में additive रंग के साथ पेंट करने के लिए?
धन्यवाद बहुत, पावेल; और बहुत जल्दी भी! –
बीटीडब्ल्यू, क्या आप पोर्टरडफ.मोड.एडीडी के विकल्प के बारे में जानेंगे जो एसडीके संस्करण 8 के साथ संगत है? दस्तावेज कहता है कि एडीडी संस्करण 8 में जोड़ा गया था लेकिन यह झूठ है। यह वास्तव में संस्करण 11 में पेश किया गया था और कुछ पुराने उपकरणों पर क्रैश किया गया था जिन्हें मेरे विजेट को स्थापित करने की अनुमति नहीं दी जानी चाहिए। –
यह बहुत अच्छा है!क्या आप इस तकनीक को बिटमैप्स पर लागू कर सकते हैं जो एक-दूसरे को ओवरलैप करते हैं? –