Android:用Intent傳送圖片


三種方法對應三種情況:

1.傳送本地res中的圖片

  如果是本地res中的資源文件可以用intent.putExtra(""id"", R.id.xxx);傳遞一個對應的id過去。在新activity中通過id取出圖片。getResources().getDrawable(R.id.xxx);

傳送圖片的Activity:

private ListView lstmenu;
private int[] imageid={R.drawable.pic1,R.drawable.pic2};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_itemdetail);
        lstmenu=(ListView) findViewById(R.id.lstmenu);

        lstmenu.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position,long id) {
                //點擊的Item的內容通過參數帶入itemActivity,並打開
                Intent intent = new Intent(itemdetailActivity.this,itemActivity.class);     //創建Intent
                intent.putExtra("detail_img",imageid[position]);  //將要傳遞的信息放入Intent
                intent.putExtra("detail_text1",title[position]);  //將要傳遞的信息放入Intent
                intent.putExtra("detail_text2",detail[position]);  //將要傳遞的信息放入Intent
                startActivity(intent);
            }

        });
}

接收圖片的Activity:

int img_id = getIntent().getIntExtra("detail_img",0);    //接收圖片的id
        img.setImageResource(img_id);

2.不是本地資源文件或者adapter中沒有存儲id

  如果不是本地資源文件或者adapter中沒有存儲id,可以把drawable轉為bitmap,用intent.putExtra(""bitmap"", bitmap);傳遞過去。因為intent只能傳遞實現序列化的類,即繼承java 的Serializable接口或者android的Parcelable接口。drawable沒有實現該接口所以不能傳遞。

3.拉取的圖片

  如果是通過線程什么的從網上拉取的圖片,可以定義一個下載的工具類,並定義一個static的靜態Map集合,每拉取成功一張圖片就把該圖片存入Map中作為緩存。key是該圖片的拉取地址。然后通過intent把地址傳遞過去。在新activity中通過該工具類取得靜態map,並通過傳遞過來的地址中map中取出該圖片。"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM