में समस्या पर क्लिक करें मैंने स्क्रीन पर गेंद को प्रदर्शित करने के लिए एंड्रॉइड में एक कस्टम दृश्य बनाया है। अब मैं चाहता हूं कि जब मैं उस गेंद को छूता हूं तो उसे चार भागों में विस्फोट करना चाहिए और प्रत्येक भाग को चार अलग-अलग दिशाओं को ऊपर, नीचे, बाएं, दाएं स्थानांतरित करना चाहिए। मुझे पता है कि मुझे गेंद पर स्पर्श का पता लगाने के लिए टच श्रोता सेट करना है, लेकिन फिर विस्फोट प्रभाव कैसे बनाया जाए? यह समस्या अब हल हो गई है। मैं स्क्रीन पर कई गेंदों को प्रदर्शित कर रहा हूं ताकि उपयोगकर्ता उस पर क्लिक कर उन्हें विस्फोट कर सके। एक को छोड़कर समान गुणों के साथकस्टम ऑब्जेक्ट एंड्रॉइड
public class BallView extends View {
private float x;
private float y;
private final int r;
public BallView(Context context, float x1, float y1, int r) {
super(context);
this.x = x1;
this.y = y1;
this.r = r;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawCircle(x, y, r, mPaint);
}
}
SmallBall दिशा है और एक में दिशा और एनीमेशन झंडा ले जाने के लिए यह आगे बढ़ रोकने के लिए विधि विस्फोट कि:
यहाँ मेरी कस्टम दृश्य है।
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout android:id="@+id/main_view"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FF66FF33" />
मैं गतिविधि वर्ग के लिए BallView और SmallBall जोड़ रहा इस प्रकार है::
final FrameLayout mainFrameLayout = (FrameLayout) findViewById(R.id.main_frame_layout);
SmallBall[] smallBalls = new SmallBall[4];
smallBalls[0] = new SmallBall(getApplicationContext(), 105, 100, 10, 1, false);
smallBalls[0].setVisibility(View.GONE);
mainFrameLayout .addView(smallBalls[0]);
// create and add other 3 balls with different directions.
BallView ball = new BallView(getApplicationContext(), 100, 100, 25, smallBalls);
listener = new MyListener(ball);
ball.setOnClickListener(listener);
mainFrameLayout.addView(ball);
मैं कई BallView और उनके रिश्तेदार जोड़ रहा
private final int direction;
private boolean anim;
public void explode() {
// plus or minus x/y based on direction and stop animation if anim flag is false
invalidate();
}
मेरे लेआउट एक्सएमएल इस प्रकार है विभिन्न पदों पर SmallBall सरणी। अब क्या होता है इससे कोई फर्क नहीं पड़ता कि मैं आखिरी बार स्क्रीन पर क्लिक करता हूं, बॉलव्यू विस्फोट शुरू होता है। उस दूसरे अंतिम के बाद, और इसी तरह। तो यहां 2 मुद्दे हैं:
- यह ऑनक्लिक/ऑन टच इवेंट पर क्यों कॉल करता है इससे कोई फर्क नहीं पड़ता कि मैं स्क्रीन पर क्लिक करता हूं? जब मैं विशेष BallView पर क्लिक करता हूं तो इसे केवल श्रोता ईवेंट को कॉल करना चाहिए।
- और दूसरी बात यह है कि BallView लेआउट में जोड़े जाने के तरीके के विपरीत तरीके से विस्फोट शुरू कर देता है?
मेरे श्रोता वर्ग:
public void onClick(View v) {
BallView ballView = (BallView) v;
ballView.setVisibility(View.GONE);
//get small balls associated with this ball.
//loop through small ball and call their explode method.
}
मैं प्रश्न में चरित्र सीमा के कारण कोड छंटनी की है।
विस्फोट प्रभाव के लिए कोडिंग में आपको क्या समस्या है? क्या आप भागों या विस्फोट ग्राफिक्स के आंदोलन की एनीमेशन चाहते हैं? यह बेहतर होगा अगर आप एक तस्वीर या कुछ जो आप प्राप्त करना चाहते हैं प्रदान कर सकते हैं। – noob
@ निर्माता: मैं क्या चाहता हूं जब कोई किसी भी गेंद पर क्लिक करता है तो उसे चार छोटी गेंदों में विस्फोट करना चाहिए और प्रत्येक दीवार को चार दिशाओं में से एक में स्थानांतरित करना चाहिए। मुझे यकीन नहीं है कि इसके लिए क्या उपयोग करना है क्योंकि मैं एंड्रॉइड के लिए नया हूं। विस्फोटित हिस्सों की एनीमेशन हो सकती है अच्छा विकल्प होगा। –
मेरा उत्तर देखें – noob