将图像传递给另一个活动

2024-03-12

感谢这个网站,我弄清楚了如何在活动之间传递字符串值,但是我在传递图像时遇到了麻烦。我想要做的是让用户单击一个按钮来打开图库并允许选择图片。然后我有另一个按钮可以打开另一个显示 ImageView 的活动。我希望能够从上一个活动中选择 ImageView 的图像。

这是具有我单击以打开图库并检索所选图像的按钮的类:

public class EnterEdit extends Activity implements View.OnClickListener 
{
private static final int SELECT_IMAGE = 0;

 String filepath;

 Bundle fieldresults;
 Intent b; 

 @Override
 protected void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.enteredit);

  Button selectwallpaper = (Button) findViewById(R.id.selectwallpaper);
  selectwallpaper.setOnClickListener(this);

  Button previewwallpaper = (Button) findViewById(R.id.previewwallpaper);
  previewwallpaper.setOnClickListener(this);

  fieldresults = new Bundle();
  b = new Intent(this, PreviewScreen.class);
 }


 @Override
 public void onClick(View view) 
 {
  switch (view.getId())
  {
   case R.id.selectwallpaper:
    Intent gallery = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI);
    startActivityForResult(gallery, SELECT_IMAGE);
    break;

   case R.id.previewwallpaper:
     startActivity(b); 
    }
    break;   
  }


 protected void onActivityResult(int requestCode, int resultCode, Intent data)
 {
  super.onActivityResult(requestCode, resultCode, data);

   if (resultCode == RESULT_OK)
   {
    if (requestCode == SELECT_IMAGE)
    {
     Uri selectedimage = data.getData();
     String[] filepathcolumn = {MediaStore.Images.Media.DATA};

     Cursor cursor = getContentResolver().query(selectedimage, filepathcolumn, null, null, null);
     cursor.moveToFirst();

     int columnindex = cursor.getColumnIndex(filepathcolumn[0]);
     filepath = cursor.getString(columnindex);
     cursor.close();

     fieldresults.putString("bitmap", filepath);
     b.putExtras(fieldresults);
    }
   }
 }
}

这是应该显示所选图像的类:

public class PreviewScreen extends Activity implements View.OnClickListener 
{

 @Override
 protected void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.previewscreen);

  Bundle fieldresults = this.getIntent().getExtras();
  String backgroundpath = fieldresults.getString("bitmap");

  String background = BitmapFactory.decodeFile(backgroundpath);
  ImageView gallerypic = (ImageView) findViewById(R.id.gallerypic);
  gallerypic.setImageBitmap(background); 
 }
}

我不确定的是OnActivityResult如果我应该通过selectedImage或中选择的图像b.putExtra("bitmap", selectedimage);线。我尝试了这两个活动,但在第二个活动中没有看到图像。我也不确定PreviewScreen如果我正确设置图像视图,则为类。任何帮助表示赞赏。谢谢。


相信我,您不想在活动之间传递图像。相反,为什么不简单地传递图像的路径并让第二个活动决定如何处理该路径(在本例中解码并显示图像)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将图像传递给另一个活动 的相关文章

  • Android 的 GCM 推送通知[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 最近 我尝试学习 GCM 并制作一个测试应用程序 该应用程序将通过 androids 官方网站获取 an
  • Android 视图展开动画

    我正在尝试编辑这些来源 https github com gabrielemariotti androiddev tree master AnimationTest创建一个适用于我所有视图的简单函数 Override public void
  • Android ACTION_DATE_CHANGED 广播

    我有 Nexus S 当我在手机上手动更改日期时 ACTION DATE CHANGED 并不总是被广播 如果我将日期从 2014 年 2 月 13 日更改为 2014 年 2 月 14 日 我还没有获得 ACTION DATE CHANG
  • 以编程方式启用/禁用广播接收器

    我们有一个可以扫描蓝牙设备的应用程序 负责扫描的代码应仅在启用蓝牙时运行 此外 我们希望随时禁用 启用此功能 我们选择实现一个注册BluetoothAdapter ACTION STATE CHANGED广播的BroadcastReceiv
  • 卡片视图工具栏

    我有一个包含 CardView 的 RecyclerView 我想向每个 CardView 添加一个工具栏 其外观和行为类似于主工具栏 图标 标题 按钮 按钮 菜单 我从这里看到了 http blog grafixartist com cr
  • 使用 ArrayAdapter 的 ListView 中的按钮

    我有一个使用 POJO 类填充的 ArrayAdapter 列表视图由 2 个布局组成 1 代表菜单项 1 代表类别 带分隔符的列表视图很好 后来我尝试在每个菜单项行中添加一个按钮来编辑其中的详细信息 当我尝试获取单击按钮的行的位置时 我遇
  • 可以混淆/加密 SharedPreferences 文件吗?

    因此 我对混淆应用程序的 SharedPreferences xml 文件很感兴趣 就像 Android LVL 混淆其许可证 cahce 数据一样 这是可以想象的吗 大量的谷歌挖掘几乎没有产生任何可能解决我的问题的结果 我当然不是密码学家
  • 尝试使用掩码裁剪位图会抛出 IllegalArgumentException:

    我正在使用以下代码 public void cropSelection Bitmap bitmap annotationBitmap copy annotationBitmap getConfig true Canvas canvas ne
  • 使用反向无限滚动添加到 ListView 时保持滚动位置

    我正在构建一个类似聊天的 Android 应用程序 类似于环聊 为此 我使用垂直 ListViewstackFromBottom true and transcriptMode normal 该列表按从较旧的消息 顶部 到较新的消息 底部
  • 检查 Firebase 邀请是否引导至 Play 商店

    当在 Android 上使用 Firebase 邀请并在应用程序启动时访问动态链接时 有没有办法知道用户是通过邀请刚刚安装了该应用程序还是已经安装了该应用程序 非常感谢 Borja 编辑 感谢 Catalin Morosan 的回答 事实证
  • Droid 3 上的列表视图背景为灰色

    我有一个带有自定义背景的列表框 它在黑色背景的两侧显示一条细白线 在我所有的测试手机 Galaxy Captivate Vibrant Nexus 1 G Tablet Archos 32 Droid 上运行良好 我刚买了一台 Droid
  • 如何通过代码设置Fragment标签?

    我还没有找到类似的东西setTag String tagName 方法中的Fragment班级 唯一的方法是设置Fragment我发现的标签是通过做FragmentTransaction并传递标签名称作为参数 这是显式设置的唯一方法吗Fra
  • 首选项活动中的广告“没有足够的空间来显示广告!需要:<480, 75>,拥有:<432, 1073741823>”

    我试图在偏好活动中展示广告 但它从未出现 Logcat 始终显示消息 没有足够的空间来显示广告 想要 有 这就是我制作广告的方式 我对广告有自定义偏好 public class AdmobPreference extends Prefere
  • GCM(Google 云消息传递)是否需要 Google 帐户?

    我需要编写一个简单的应用程序来获取推送通知 我使用 GCM 它使用 Google Play 服务来获取信息 我的问题是 要访问 GCM 是否需要 Google 帐户 我可以使用其他电子邮件帐户来识别设备吗 有没有其他方法可以获取另一个电子邮
  • 未调用内容提供商 query() (Android TV)

    据报道 我正在尝试将我的应用程序纳入 Android TV 全局搜索中文档 http developer android com training tv discovery searchable html我必须创建以下内容 内容提供商 可搜
  • 上次更新arm64-v8a后,模拟器在M1 Mac上显示离线

    昨天模拟器运行得很好 系统镜像为arm64 v8a 我不太记得工作系统映像的版本名称 但是昨天我接受了 ARM 64 系统映像的更新 版本名称是 S 我可以从 AVD 管理器启动模拟器 当我按 运行应用程序 按钮时模拟器也会启动 但是 该应
  • 如何将 currentTimeMillis 转换为可读的日期格式? [复制]

    这个问题在这里已经有答案了 我想用currentTimeMillis两次 这样我就可以计算持续时间 但我也想以用户可读的格式显示时间和日期 我遇到了麻烦currentTimeMillis有利于计算 但我看不到内置函数可以转换为合适的时间或时
  • RecyclerView 适配器的 Kotlin 泛型

    我正在尝试编写一个通用的 recyclerview 适配器 我找到了几个例子 然而 仍然无法弄清楚如何实现通用适配器 我写的代码是 open abstract class BaseAdapter
  • 如何为背景图像添加内边距

    我有一个LinearLayout其中有一个背景图像 一个 9 修补的 png 文件 如何向左和右添加填充 以使背景图像不占据整个宽度 我努力了android paddingLeft and android paddingRight 但这并没
  • Android VideoView 中纵向视频方向错误

    我在 Android 设备上以肖像方向拍摄新视频 如下所示 Intent intent new Intent android provider MediaStore ACTION VIDEO CAPTURE startActivityFor

随机推荐

  • 如何在 IIS 上的 ASP.NET Core 中使用 MaxRequestBodySize 和 maxAllowedContentLength?

    我有一个在 IIS 上运行的 ASP NET Core Web API 在一次操作中 我设置了IHttpMaxRequestBodySizeFeature MaxRequestBodySize to 262144000 我已经使用 IIS
  • 作为表单属性的表单元素

    如果表单中有一个表单元素 并且该元素有一个name or id 您可以直接从表单的 DOM 元素访问它作为具有该名称的属性 这种行为似乎得到了非常广泛的支持 是否有任何规范涵盖它 如果有 是哪一个规范 此行为适用于表单elements收藏已
  • Python属性函数的C代码?

    我真的很好奇howPython的解释器创建一个属性x从一个方法中x通过x property x 如果我能看一下C代码 我会感觉好多了 类型定义在descrobject c file http hg python org cpython fi
  • ID动态文档firestore

    如何在firestore中制作该文档的IDQEoevSjHlswgk44nVTsr动态的 即根据该集合中的 ID 进行更改 我正在使用 angularfire2 5 0 0 rc 11 这就是我所拥有的 firebase service t
  • 如何在Svelte中动态渲染组件?

    我试图循环遍历一个数组来渲染具有以下值的组件type each contents as content lt content type gt each 期望的输出
  • 为什么Activity结束时会抛出NPE?

    我有一个错误 这几天来一直让我发疯 不幸的是 我无法向您展示代码 原因有两个 我的老板不会欣赏它 并且代码库太大而无法共享 每当活动完成时就会发生该错误 无论是因为我调用 finish 还是因为操作系统破坏了它 问题是 是什么 或可能 导致
  • FullCalendar Scheduler 列标题格式

    我正在使用 FullCalendar 和调度程序 最新版本 我想将列标题格式替换为 DM dddd 我尝试使用 columnHeaderFormat 但它似乎不起作用 我也尝试使用旧的 即columnFormat 但它仍然不起作用 docu
  • 对 getchar 和 scanf 感到困惑

    我真的很困惑的用法getchar and scanf 这两者有什么区别 我知道scanf 和家人 从用户 或文件 处获取一个字符一个字符并将其保存到一个变量中 但它是立即执行还是在按下某些内容后执行此操作 Enter 我不太理解这段代码 我
  • 使用新的 Flutter Apk 更新 Android 应用程序 (Google Play)

    我一年前创建了一个 Android 应用程序 我想用新的 apk 版本更新它 但是用 flutter 构建 这可能吗 如何 谢谢 是的 这是完全可能的 您需要做的三件事 使用与旧应用程序相同的包名称 应用程序 ID 使用与旧应用程序相同的签
  • 如何使用 Sqlite.swift 获取列名称列表?

    出于调试目的 我试图获取 SQLite 表中列名的简单列表 我正在使用SQLite swift框架 https github com stephencelis SQLite swift 我的问题比如何在 sqlite3 iPhone 上获取
  • 使用ffmpeg删除重复的帧和连接的音频

    使用 ffmpeg 我能够使用以下命令从视频中删除重复的帧ffmpeg i in mp4 vf mpdecimate setpts N FRAME RATE TB out mp4 然而 音频比视频持续的时间更长 显然是因为该命令仅删除了视频
  • 无法使用 Axios 或 SuperAgent 从 React 应用程序进行基本身份验证

    我尝试使用 axios 发出 GET 请求 但总是收到 401 仅当我从 React 应用程序发送请求时才会发生这种情况 axios get http localhost 8080 vehicles withCredentials true
  • 无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“System.Collections.Generic.List

    我有下面的代码 List
  • 如何转义parameters.yml symfony2中的“%”

    我想逃脱一个角色 在文件 parameters yml中 因为我的密码以 database driver3 pdo sqlsrv database host3 192 168 10 10 database port3 1455 databa
  • 使用python在json中递归搜索

    我有一个像这样的 json result timestamp 1234567890 textsList text some text here 0 otherList type Nothing type Recursive data tim
  • 从 SSIS 中的 CSV 导入 yyyyMMdd 日期

    我有 12 列使用yyyymmdd格式 在里面数据流任务 我有一个平面文件源 a 派生列任务 and an OLE DB 目标 我将以下表达式应用于派生列任务 DT DBDATE SUBSTRING DT STR 10 1252 Date
  • 使用“IFRAME”的沙箱模式时,无法获取在 Google Apps 脚本中工作的链接

    在 Google Apps 脚本中 下面的代码在默认沙箱模式下适用于我 但是当我将沙箱模式更改为 IFRAME 时 该代码不起作用 在 IE11 中 单击第一个按钮后出现空白页面 在 Chrome 中 第一个按钮可以工作 但单击后续按钮会显
  • 多列的唯一约束

    我正在使用 SEAM 2 Hibernate 以及 PostgreSQL 9 数据库 我有下表 Active Band active band id serial active band user text active band date
  • 改变线性布局android中的视图顺序

    如您所知 线性布局中视图的顺序与 xml 文件中视图的顺序相关 是否可以通过索引之类的方法用java代码更改该顺序 我会尝试删除所有视图removeView view http developer android com reference
  • 将图像传递给另一个活动

    感谢这个网站 我弄清楚了如何在活动之间传递字符串值 但是我在传递图像时遇到了麻烦 我想要做的是让用户单击一个按钮来打开图库并允许选择图片 然后我有另一个按钮可以打开另一个显示 ImageView 的活动 我希望能够从上一个活动中选择 Ima