zoukankan      html  css  js  c++  java
  • 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中取出该图片。"

  • 相关阅读:
    Altium Designer 快捷键与技巧
    常用贴片三极管型号与丝印的对应关系(SOT23)
    buck型DC-DC分析
    IAR升级之后,编译stm32官方工程报错的解决办法
    单片机中不带字库LCD液晶屏显示少量汉字
    结构体应用及其字节对齐问题
    退出循环break,continue,return,goto分析
    金莎伪粉丝的日常
    keil5 mdk使用ST-Link II下载出现cannot halt the core解决办法
    keil5 mdk调用外部编辑器notepad++、sublime3、VSCode总结
  • 原文地址:https://www.cnblogs.com/doggod/p/12115300.html
Copyright © 2011-2022 走看看