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中取出该图片。"

原文地址:https://www.cnblogs.com/doggod/p/12115300.html

时间: 2024-11-13 16:38:56

Android:用Intent传送图片的相关文章

android 开发 获取各种intent (图片、apk文件、excel、pdf等文件)

public static Intent openFile(String filePath){ File file = new File(filePath); if(!file.exists()) return null; /* 取得扩展名 */ String end=file.getName().substring(file.getName().lastIndexOf(".") + 1,file.getName().length()).toLowerCase(); /* 依扩展名的类

android 使用Intent.ACTION_SEND分享图片和文字内容(新浪微博,短信等)

下面的方法只能实现普通的文字分享: 1 2 3 4 5 6 7 8 9 10 11 private void shareContent() {         Intent share = new Intent(android.content.Intent.ACTION_SEND);         share.setType("text/plain");         String title = "标题";         String extraText=&

Android中Intent笔记

Intent是一种运行时绑定(run-time binding)机制,它能在程序运行过程中连接两个不同的组件.通过Intent,你的程序可以向Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求.比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTION给Android,Android就会根据Intent的请求内容,查询各组件注册时声明的IntentFilter,找到网页浏览器的Ac

Android开源库--PhotoView图片查看

如果说我比别人看得更远些,那是因为我站在了巨人的肩上. github地址:https://github.com/chrisbanes/PhotoView 介绍 在一般的应用中,总会遇到查看图片的功能,点击图片之后,详细查看,PhotoView这个开源控件就帮我们很好的完成了这个功能. 它继承自ImageView,支持缩放,以及各种手势的监听. 特性 通过多点触摸和双击来进行放大. 通过轻弹划实现平滑滚动. 在带有滚动功能的父类工作的很好(比如ViewPager) 允许当显示的矩阵发生发生改变时通

Android调用gallery获取图片

从gallery中获取图片 步骤: 步骤一: // 激活系统图库应用,选择一张图片 Intent intent = new Intent(); // 活动操作:选择一个项目从数据,返回被选中 intent.setAction(Intent.ACTION_PICK); // 设置意图的类型 intent.setType("image/*"); // 设置开启意图 // 设置的是有返回值的意图开启需要重写onActivityResult startActivityForResult(int

[Android] 通过Menu实现图片怀旧、浮雕、模糊、光照和素描效果

    由于随手拍项目想做成类似于美图秀秀那种底部有一排Menu实现不同效果的功能,这里先简单介绍如何通过Menu实现打开相册中的图片.怀旧效果.浮雕效果.光照效果和素描效果.后面可能会讲述如何通过PopupWindow实现自定义的Menu效果. 希望文章对大家有所帮助,如果有错误或不足之处请海涵~ 一. Menu效果展示    Android手机上有个Menu按键,点击他会弹出一个菜单,通常在屏幕底部或右上角,在选项菜单OptionsMenu中最多显示2排每排3个菜单项,可以包含自定义的图片和

Android 进度条改变图片透明度

1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent

Android中Intent概述及使用

Android中的Intent是一个非常重要且常用的类,可以用来在一个组件中启动App中的另一个组件或者是启动另一个App的组件,这里所说的组件指的是Activity.Service以及Broadcast. Intent的用途 Intent主要有以下几种重要用途: 1. 启动Activity:可以将Intent对象传递给startActivity()方法或startActivityForResult()方法以启动一个Activity,该Intent对象包含了要启动的Activity的信息及其他必

android之Intent的七大属性

Intent用于封装程序的"调用意图".两个Activity之间,可以把需要交换的数据,封装成Bundle对象,然后使用Intent对象,携带数据到另一个Activity中.实现两个Activity的数据交换. Intent还是各种应用程序组件之间通信的重要媒介.启动Activity.Service.BroadcastReceiver,都需要使用Intent. Intent还有一个好处,如果应用程序只是想启动具有某种特征的组件,并不想和某个具体的组件耦合,则可以通过在int ent -