2011-06-15 11 views
8

मैं setImageResource(R.drawable.icon1) का उपयोग कर एक ImageView के लिए एक छवि निर्धारित किया है।getImageResource() एंड्रॉइड। क्या यह संभव है?

अब मेरी जरूरत को पता लगाने के लिए छवि है कि एक ImageView के लिए सेट और कुछ संसाधन करना है क्या है।

तरह

if (imageView.getImageResource() == R.drawable.icon1) { 
    //do some processing 
else if (imageView.getImageResource() == R.drawable.icon2) { 
    //do somethign else 
else 
//display 

तो मुझे पता है कि अगर वहाँ एक विधि मौजूद चाहते हैं (AFAIK, यह नहीं है) और कैसे क्या संसाधनों एक के लिए निर्धारित किया गया है की एक ट्रैक रखने के लिए करता है, तो ऐसा नहीं होता ImageView

धन्यवाद। साना।

+0

क्यों बस नहीं यह अपने आप करते हैं, अगर आप सेटिंग कर एक हो? – Yuliy

+0

मैं understnad नहीं है क्या आप को व्यक्त करना चाहते हैं। क्या तुम समझा सकते हो। – Sana

+0

मैं सिर्फ छवि आप किसी अन्य स्थान में imageView में सेट की आईडी भंडारण का सुझाव दे रहा हूँ जब आप इसे सेट, के रूप में जो सुझाव दिया। – Yuliy

उत्तर

6

आप यह सोचते हैं कि कर रहे हैं, क्योंकि आप में एक पूर्णांक शब्दों में कहें, तो आप एक पूर्णांक वापस बाहर निकलना करने में सक्षम हैं, और कहा कि नहीं कैसे setImageResource() काम करता है। ImageView#setImageResource() देखें। यह आपके लिए एक सुविधाजनक तरीका है: दृश्यों के पीछे एंड्रॉइड क्या कर रहा है, ड्रॉबल संसाधन को देख रहा है (ज्यादातर मामलों में, यह एक बिटमैप ड्रायबल है, लेकिन यह किसी भी प्रकार का हो सकता है), और फिर उस संसाधन को ImageView पर लागू करना बिटमैप वस्तु (यानी, छवि डेटा केवल - यह किसी भी विचार क्या अपने मूल "संसाधन आईडी" पहले से था नहीं है)।

आपका सबसे अच्छा समाधान पिछले संसाधन आईडी आप इस्तेमाल का ट्रैक रखने जा रहा है:

imageView.setImageResource(R.drawable.image1); 
this.mLastResourceId = R.drawable.image1; 
// ... 

// Later, when checking the resource: 
if (this.mLastResourceId == R.drawable.image1) { 
    // Do something 
} 
-1

आप बंडल का उपयोग करें और यह निर्धारित कर सकते गुण आप की जरूरत करने के लिए सक्षम होना चाहिए।

Intent i = new Intent();  
Bundle extras = new Bundle(); 
     i.putExtra("prop", "value"); 
+0

हू? आपको इसके बजाय 'imageView.setTag (ऑब्जेक्ट) 'विधि के बारे में सोचना चाहिए। – dmon

0

एक अन्य विकल्प, यदि संभव हो तो, imageView उपवर्ग और एक ओवरराइड setImageResource में पूर्णांक स्टोर करने के लिए किया जाएगा() ।

public class MyImageView extends ImageView { 
    int rememberId = -1; 
    @override void setImageResource(int resId){ 
    rememberId = resId; 
    } 
    int getMyResId(){ 
    return rememberId; 
    } 
} 
0
package com.widget; 

import android.content.Context; 
import android.util.AttributeSet; 
import android.widget.ImageButton; 

/** 
* custom star type imagebutton that can be obtain the background image resource 
* id. 
* 
* </p> your layout xml resource might be like the following code: <br> 
* <view class="com.widget.StarButton" <br> 
*  android:id="@+id/starButton" <br> 
*  android:layout_width="wrap_content" <br> 
*  android:layout_height="wrap_content" <br> 
*  android:background="@android:color/background_light" <br> 
*  android:paddingTop="10dp" <br> 
*  android:src="@drawable/star" /> <br> 
* 
* @author Jeffen 
* 
*/ 
public class StarButton extends ImageButton { 
private int mLastResourceId = -1; 

public StarButton(Context context) { 
    super(context); 
} 

public StarButton(Context context, AttributeSet attrs) { 
    this(context, attrs, android.R.attr.imageButtonStyle); 
} 

public StarButton(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
    setFocusable(true); 
} 

/** 
* set image resource and sync image resource id. 
*/ 
@Override 
public void setImageResource(int resId) { 
    super.setImageResource(resId); 

    setImageResourceId(resId); 
} 

public int getImageResourceId() { 
    return mLastResourceId; 
} 

public void setImageResourceId(int resId) { 
    mLastResourceId = resId; 
} 

} 
5

आप इस प्रकार टैग संपत्ति का उपयोग करने में सक्षम होना चाहिए:

imageView.setImageResource(R.drawable.icon1); 
imageView.setTag(Integer.valueOf(R.drawable.icon1)); 

// later 

int drawable = (Integer) imageView.getTag(); 

switch(drawable) { 

    case R.drawable.icon1: 
     // do_something.... 
     break; 

    case R.drawable.icon2: 
     // do_something.... 
     break; 

    ... 
} 
+1

यह सही उत्तर है –

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