2014-04-19 77 views
0

我嘗試通過路徑將圖像發送到其他活動。沒有錯誤,但圖像不可見。我認爲這可能是發送路徑的問題,但我不知道。該圖像在目錄中可繪製。如何通過路徑在活動之間發送圖像android

感謝您的幫助

這是我的第一個活動:

public void onClickObamaBtn(View v){ 

    Intent intent = new Intent(this, EkranB.class); 
    String path = getString(R.drawable.obama); 
    Toast.makeText(this, path, Toast.LENGTH_LONG).show(); 
    intent.putExtra("president", path); 
    startActivity(intent); 
} 

螞蟻,這是第二個:

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_ekran_b); 

    ivObama = (ImageView) findViewById(R.id.iV1); 
    preferences = this.getSharedPreferences("prezydenciUsa", Context.MODE_PRIVATE); 

    String path = getIntent().getStringExtra("president"); 
    Drawable president = Drawable.createFromPath(path);  

    ivObama.setImageDrawable(president); 

} 

回答

0

你的意思的路徑是在DrawableResource,它是Resource idint

您可以直接從Resource設置圖像這樣

imageView.setImageDrawable(getResources().getDrawable(R.id.obama)); 

我不明白,爲什麼你需要通過Resource id,因爲資源是所有Activity

訪問如果你真的需要通過通過意圖被拉伸,然後做這樣

int pathId = getResources().getDrawable(R.id.obama); 
intent.putExtra("president", pathId); 

現在,獲取資源ID,並將其設置爲ImageView這樣

int pathId = getIntent().getIntExtra("president", -1); 
imageView.setImageDrawable(pathId); 
+0

但在可繪製我有三個不同的圖像。在第一個活動中,我有三個按鈕。在依賴我按下哪個按鈕的時候,我想在第二項活動中閃現出不同的圖片。這就是爲什麼我想按路徑做。 –

+0

好的。然後使用我的第二種方法通過意圖傳遞drawable。通過drawable id intent.putExtra(「president」,pathId); – Libin

+0

謝謝,它的作品:) –

0
in this case its better to pass integer value which you will get from first activity as follow 

public void onClickObamaBtn(View v){ 

    Intent intent = new Intent(this, EkranB.class); 
    int path = R.drawable.obama; 
    Toast.makeText(this, ""+path, Toast.LENGTH_LONG).show(); 
    intent.putExtra("president", path); 
    startActivity(intent); 
} 

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_ekran_b); 

    ivObama = (ImageView) findViewById(R.id.iV1); 
    preferences = this.getSharedPreferences("prezydenciUsa", Context.MODE_PRIVATE); 

    int path = getIntent().getIntExtra("president",0); 


    ivObama.setImageDrawable(getResources().getDrawable(path)); 

} 
+0

感謝您的回答:) –