में मौजूदा दृश्य के शीर्ष पर छवि दृश्य को चित्रित करना यह वर्णन करने में एक कठिन परिस्थिति है, इसलिए कृपया मेरे साथ भालू। मैं इस तरह एक छोटा सा एक 'कोच के निशान' स्क्रीन बनाने के लिए कहा गया है:एंड्रॉइड - गहरी परत
हालांकि, मेरे मामले में मैं अंतर्निहित छवियों में से कुछ सामने 'पुल' की जरूरत है और उन्हें प्रदर्शित उन्हें अलग करने के लिए एक अलग रंग में। मैं निर्धारित नहीं कर सकता कि इन छवियों का 'फ्रेम' रन टाइम से पहले क्या होगा। मेरा दृष्टिकोण एक काला, अर्ध-अपारदर्शी दृश्य (मैं इसे 'पर्दे' कहता हूं) को पूरी स्क्रीन को कवर करना है, और फिर उन छवियों को जोड़ना जिन्हें मुझे एक अलग रंग के साथ पर्दे के सबव्यूज़ के रूप में चाहिए। EDIT यह हिस्सा आसान है और मैं इसके साथ सहायता मांग नहीं रहा हूं (यही कारण है कि सुझाव है कि यह सुझाए गए प्रश्न का डुप्लिकेट गलत है)।
मैं नहीं मानता कि मैं bringToFront()
या setTranslationZ()
उपयोग कर सकते हैं क्योंकि इन तरीकों मेरी पर्दा के सामने से ImageView
सभी तरह लाना नहीं होंगे। तो, मैं जो करने की कोशिश कर रहा हूं उसे छवि दृश्य (इसकी एक्स, वाई, चौड़ाई, और ऊंचाई) का सटीक 'फ्रेम' प्राप्त होता है समग्र स्क्रीन के सापेक्ष और फिर उसी का उपयोग करके नया चित्र दृश्य जोड़ने का प्रयास करें एक ही फ्रेम के साथ आकर्षित करने योग्य।
यह जानना भी महत्वपूर्ण है कि अंतर्निहित 'व्यू' वास्तव में कई विचारों (स्लाइडिंग ड्रॉवर समेत) से बना है, इसलिए मुझे स्क्रीन के सापेक्ष निर्देशांक प्राप्त करने की आवश्यकता है। मुझे लगता है कि इसका मतलब बनता है।
मैं सही रंग के साथ पर्दे के सबव्यू के रूप में नया ImageView
आकर्षित करने में सक्षम हूं, लेकिन छवि की स्थिति और आकार बंद है। मैं इस नए ImageView
को पिछले एक के शीर्ष पर कैसे आकर्षित कर सकता हूं?
मैं अन्य रणनीतियों के लिए भी खुला हूं (क्योंकि यह काम नहीं कर रहा है)। हर प्रकार की सहायता के लिए आपका धन्यवाद।
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
...
ViewTreeObserver vto = mRootview.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
mRootview.getViewTreeObserver().removeOnGlobalLayoutListener(this);
mDrawerLayout.openDrawer(Gravity.LEFT);
RelativeLayout curtain = addOpaqueCurtainToRootView();
int frame[] = getFrameOfExistingImageView();
addNewImageViewOnTopOfEverything(curtain, frame);
}
});
}
private RelativeLayout addOpaqueCurtainToRootView() {
RelativeLayout curtain = new RelativeLayout(context);
RelativeLayout.LayoutParams curtainParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
curtain.setLayoutParams(curtainParams);
curtain.setBackgroundColor(Color.argb(179, 0, 0, 0)); //70% opaque
mRootview.addView(curtain);
return curtain;
}
private int[] getFrameOfExistingImageView() {
// proving that I have a reference to the original image
mCurrentImage.setColorFilter(Color.rgb(255, 0, 0));
int array[] = new int[2];
mCurrentImage.getLocationOnScreen(array);
Log.d(TAG, "width: " + Integer.toString(array[0]));
Log.d(TAG, "height: " + Integer.toString(array[1]));
Log.d(TAG, "x: " + Float.toString(mCurrentImage.getX()));
Log.d(TAG, "y: " + Float.toString(mCurrentImage.getY()));
int frame[] = new int[4]; // x,y,width,height
frame[0] = (int)mCurrentImage.getX();
frame[1] = (int)mCurrentImage.getY();
frame[2] = array[0];
frame[3] = array[1];
return frame;
}
private void addNewImageViewOnTopOfEverything(RelativeLayout curtain, int[] frame) {
ImageView iv = new ImageView(context);
iv.setImageResource(R.drawable.imgView);
iv.setColorFilter(Color.rgb(255, 255, 255));
iv.setX(frame[0]);
iv.setY(frame[1]);
iv.setLayoutParams(new RelativeLayout.LayoutParams(frame[2], frame[3]));
curtain.addView(iv);
}
संभावित डुप्लिकेट [एंड्रॉइड में पारदर्शी गतिविधि कैसे बनाएं?] (Http://stackoverflow.com/questions/16332064/how-to-create-transparent-activity-in-android) – user5599807
कोशिश करें [यह] (http : // pastebin।कॉम/डीजी 4 सीएक्सएक्स 0 एफ) – pskink
@ user5599807 - डुप्लिकेट नहीं। वह पोस्ट सिर्फ एक बहुत ही सरल सवाल पूछता है, जो एक अर्द्ध पारदर्शी पृष्ठभूमि के साथ एक दृश्य आकर्षित करने के लिए है। मैं पहले से ही कर रहा हूँ (आसानी से)। मेरा सवाल यह है कि उस नए दृश्य पर एक सटीक स्थिति में और सटीक आकार के साथ बच्चे के विचारों को कैसे रखा जाए। – Alex