2014-09-10 71 views
1

你好,我試圖解釋我的意思,但它是如下:Java的ImageView的字符串作爲SRC

<ImageView 
android:id="@+id/imageLogo"  
android:src="@drawable/logo"   
android:layout_width="wrap_content" 
android:layout_height="wrap_content"> 
</ImageView> 

我想要的SRC是一個字符串,所以很容易編輯需要使用其他用戶這個。問題是android:src不接受@ string/logo,其中包含文件名。

編輯:多解釋一下:我希望我的圖像src是靈活的,所以如果我的客戶想改變他/她的標識,他/她只需要去string.xml並將值字符串具有徽標所具有的名稱。但現在當我想到它時,他們已經需要訪問可繪製文件夾來更改它們的圖像,所以感謝所有幫助:D

+0

你可以用TextView的做到這一點。看看http://stackoverflow.com/a/25636464/1608643 – 2014-09-10 12:00:53

+0

你可以解釋一點'ImageView'的用例' – kId 2014-09-10 12:06:04

回答

1

在xml中不能有src作爲字符串。

但您在自己的調用活動中編寫自己的代碼,以使用字符串資源設置圖像源。 這個你必須把你的圖像文件中的資產,你可以參考下面的代碼

ImageView view = findViewById(R.id.imageLogo); 
     AssetManager assetManager = getAssets(); 
     InputStream istr = null; 
     try { 
      //R.string.yourstring will be like "sample.png" 
      istr = assetManager.open(getResources().getString(R.string.yourstring)); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     Bitmap bitmap = BitmapFactory.decodeStream(istr); 
    view.setImageBitmap(bitmap); 
1

android:src引用可繪製圖像資源,並且不能將其更改爲字符串資源。如果需要,你可以改變圖像由於Android的名稱:SRC =「@繪製/ imagename」,並在您使用getString(R.string.myComapnyLogo)獲得從XML文件在運行時的字符串對應的目錄

+0

我爲這個應用程序爲我的客戶和需求就是你可以在strings.xml中編輯圖像src以便編輯。這個應用程序將是一種模板應用程序,所以我們可以將它集成到其他應用程序中。編輯:你說的對你說的是對的,我可以這樣做,但它不是最佳的。 – Napokue 2014-09-10 11:50:38

1
int resourceId = Activity.getResources().getIdentifier(getString(R.string.myComapnyLogo), "drawable", "your.package.name"); 
image.setImageResource(resourceId); 

這裏的文件重命名。 請參閱此documentation