मेरी पहली और सबसे अजीब एंड्रॉइड प्रोजेक्ट के लिए, मैं एक होम स्क्रीन विजेट बनाना चाहता हूं जो उन Arc Clocks में से एक प्रदर्शित करता है जो सभी बच्चे इन दिनों के बारे में चिंतित हैं।डायनामिक रूप से तैयार सामग्री के साथ एंड्रॉइड विजेट को कार्यान्वित करने का सही तरीका क्या है?
RemoteViews की सीमाओं के आधार पर यह है कि यह वास्तव तैयार करने के लिए उचित तरीके से स्क्रीन पर वास्तविक लेआउट में एक ImageView उपयोग करने के लिए है मेरे लिए लग रहा है, तो जब यह अपडेट कर रहा है, एक या दो ShapeDrawable बना सकते हैं और आकर्षित उन्हें एक नव निर्मित पर बनाया गया। फिर, बिटमैप को ImageView के स्रोत के रूप में सेट करें।
उस प्रक्रिया के बारे में कुछ है जो मैं अभी भी grokking नहीं कर रहा हूँ। निम्नलिखित कोड है जिसे मैंने विजेट अपडेट करने के लिए उपयोग करने का प्रयास किया था। मुझे स्क्रीन पर कुछ भी नहीं मिला है। ImageView में प्लेसहोल्डर छवि है जो केवल src
संपत्ति द्वारा निर्धारित की गई है। जब मैं इसे अपने ड्राइंग पर अपडेट करने के लिए कोड नहीं चलाता, तो प्लेसहोल्डर छवि जगह पर रहती है। तो, मुझे पता है कि यह कोड कुछ कर रहा है, बस स्पष्ट रूप से सही चीज़ नहीं है।
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
Bitmap bitmap = Bitmap.createBitmap(100, 100, Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
ShapeDrawable drawable = new ShapeDrawable(new ArcShape(0, 360));
drawable.getPaint().setColor(0xffff0000);
drawable.getPaint().setStrokeWidth(5.0f);
drawable.setIntrinsicWidth(100);
drawable.setIntrinsicHeight(100);
drawable.draw(canvas);
views.setImageViewBitmap(R.id.ImageView01, bitmap);
appWidgetManager.updateAppWidget(appWidgetId, views);
मुझे पता था कि यह इतना आसान नहीं हो सकता है। तो, क्या मैं भी सही दिशा में जा रहा हूं?
अद्यतन
ठीक है, शायद यह है कि बहुत ज्यादा जानकारी नहीं थी। जिस प्रश्न का मैं वास्तव में पूछने की कोशिश कर रहा हूं वह यह है:
अगर मैं विजेट पर आकार आकर्षित करना चाहता हूं, तो क्या मुझे एक छवि दृश्य का उपयोग करना चाहिए और मेरे आकार से एक बिटमैप बनाना चाहिए या विजेट में आकर्षित करने के लिए और अधिक उचित तरीका है यह रिमोट व्यू द्वारा बाधित है?
क्या आप कह रहे हैं कि प्लेसहोल्डर अभी भी कुछ खींचने की कोशिश करते समय वहां है? – sandos
नहीं, प्लेसहोल्डर छवि दूर हो जाती है। यह स्क्रीन पर कुछ भी दृश्य के साथ समाप्त होता है। हालांकि, मैं विजेट पर होल्ड-क्लिक कर सकता हूं और इसे अभी भी हटा सकता हूं। – MojoFilter