使用URI打开图像时显示的顶部缺少图标

时间:2015-12-09 16:41:36

标签: java android

我使用以下代码显示存储在我的SD卡上的图片:

Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file:///sdcard/pp.jpg"), "image/*");
startActivity(intent);

这样可行,但它显示如下:

enter image description here

如果我直接从手机打开图像,它会显示如下:

enter image description here

当我从应用程序打开它时,如何显示您在顶部看到的其余图标?我至少需要显示分享按钮。感谢

3 个答案:

答案 0 :(得分:1)

您必须在中心创建一个带有ImageView的新活动。并在此活动的menu.xml文件中添加所有菜单图标,如下所示。

<body ng-app="startApp">
  <div ng-controller="employeeCtrl">
    <tbody>
      <tr>
        <td>
          <input type="text" id="FirstName" size="10" ng-keyup="searchEmp()" />
        </td>
        </td>
      </tr>
    </tbody>
  </div>
  <div ng-controller="employeeCtrl">
    <table st-table="employeesCollection" st-safe-src="employeesCollection" class="table table-striped">
      <tbody>
        <tr ng-repeat="employee in employeesCollection">
          <td>{{employee.first}}</td>
        </tr>
      </tbody>
    </table>
  </div>
</body>

答案 1 :(得分:1)

如果显示图像的活动不是您的活动,则您无法控制活动为用户提供的选项(如果有)。该活动是由另一位开发人员编写的,开发人员可以自由地做他想做的事。

此外,还有数以千计的Android设备型号。这些设备型号上预装了数百种不同的图像查看应用程序,还有数千种可供从Play商店等地下载。用户将选择应用程序以查看图像。如果所有这些应用程序提供的选项将由成千上万编写这些应用程序的开发人员提供,而不是您。

如果您想要绝对控制,请编写自己的图像查看活动。

答案 2 :(得分:1)

有了这个意图,你告诉操作系统找到一个可以处理打开图像的应用程序而你正在这样做而不检查是否有应用程序来处理它。因此,第三方应用程序正在处理意图并打开图像,使其无法控制。您可以尝试找到正确的意图或额外内容以从第三方应用程序获得所需的效果,但您不太可能获得它,此外Android环境中有数千个设备,每个设备可能有不同的应用程序处理您的意图。

为了确保功能符合要求,您应该在自己的应用程序中打开图像,并创建一个菜单,其中包含您所需的选项,如bhargav指示。

另外,如果您仍然要打开第三方应用程序打开图像,那么您应该像以下一样开始使用它,以便更安全。

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse("file:///sdcard/pp.jpg"), "image/*");
if (intent.resolveActivity(getPackageManager()) != null) {
    startActivity(intent);
}