2013-12-11 37 views
3

我想獲得洗牌ImageViews如何從一個ImageView的(機器人)的文件名

private List<Drawable> images_; 
    images_ = new ArrayList<Drawable>(); 
    images_.clear(); 

    images_.add(getResources().getDrawable(R.drawable.img1)); 
    images_.add(getResources().getDrawable(R.drawable.img2)); 
    images_.add(getResources().getDrawable(R.drawable.img3)); 
    images_.add(getResources().getDrawable(R.drawable.img4)); 

    Collections.shuffle(images_); 

    ImageView img_1 = (ImageView)findViewById(R.id.img_1); 
    img_1.setBackgroundDrawable(images_.get(0)); 

如何知道什麼樣的形象的名字在這個ImageView的(img_1)被設置好的的文件名?

回答

2

使用setImageResource(resID)而不是setBackgroundDrawable。現在,您可以使用setId(resID)方法將圖像的id作爲相同的resID。要獲取圖像名稱,請使用以下方法。

getResources().getResourceName(urImage.getId()); 


ArrayList<Integer> list = new ArrayList<Integer>() {{ 
    add(R.drawable.img1); 
    add(R.drawable.img2); 
    add(R.drawable.img3); 
}} 
Collections.shuffle(list); 
ImageView img_1 = (ImageView)findViewById(R.id.urimageId); 
img_1.setImageResource(list.get(0)); 
img_1.setTag(list.get(0)); 

現在要獲取圖像名稱,請執行以下操作。

getResources().getResourceName((Integer)img_1.getTag()); 
+0

你能告訴我一個關於如何做的例子..因爲我必須使用images_作爲參考,以及如何從images_.get(0)獲取ID? – Gorio

+0

爲了解釋我的想法,認爲圖像像香蕉,菠蘿,草莓,蘋果等水果......我知道這些名字,但是當它洗牌時,我失去了對圖像的引用_並且我需要知道這個位置0上的frui是什麼images_.get(0)或images_.get(1).. – Gorio

+0

請參閱已編輯的答案。 – Triode

-1

試試這個從一個ImageView的獲取文件名:

ImageView iv = new ImageView(MainActivity.this); 
String path = f.getAbsolutePath();     
iv.setImageBitmap(BitmapFactory.decodeFile(path)); 
iv.setTag(path); 

檢索路徑:

String path = (String) iv.getTag(); 
+0

f是什麼意思? – Gorio

+0

這是你的文件路徑 –

+1

當然,但它是洗牌..如何知道什麼是正確的文件路徑名稱,我不知道什麼圖像,因爲我有12 ImageView的20圖像。圖像混洗,我只得到12個職位(圖像).. – Gorio

0

據Android開發者網站上的ImageView從android.view.View繼承。因此,您可以使用getResources()獲取Resources對象,然後使用getAssets()獲取AssetManager。

我在工作,所以我現在不能提供示例。抱歉。我希望這有助於。

快樂編碼! :)

相關問題