【问题标题】:How do I get an image from an sdcard to show up on a widget imageview?如何从 sdcard 获取图像以显示在小部件图像视图上?
【发布时间】:2012-07-03 18:46:05
【问题描述】:

我正在尝试使小部件显示保存在 sdcard 上的图像。到目前为止,我发现了这个:

String imageInSD = String.format("/sdcard/facepalm%d.jpeg", counter%10);    
Bitmap bitmap = BitmapFactory.decodeFile(imageInSD);
remoteViews.setBitmap(R.id.imageview1, "setImageBitmap", bitmap);
ImageView myImageView = (ImageView)findViewById(R.id.imageview1);
myImageView.setImageBitmap(bitmap);

注释行导致小部件由于某种原因崩溃。我只是想找到一种方法来完成这项工作。

【问题讨论】:

  • 将图像的位置硬编码到/sdcard 不是一个好主意。在很多新设备中,sdcard 挂载在/emmc
  • 补充一下我是 android 的新手可能会有所帮助...我什至不知道我在做什么...
  • 致 OP,我建议您在开始之前阅读此基础知识和基础知识,否则您只会感到沮丧并放弃。那里有很多资源,其实我推荐Commonsware系列,给你一个Android的概述,Java的基础等:)
  • 但我想知道您为什么要将图像解码为位图,因为可以直接在 SD-CARD 的 ImageView 中设置图像,而无需使用图像 URI 将其解码为位图?
  • commonsware.com 那是我从其他资源中学到的 :) 真的我不应该宣传它本身......但是,嘿,这是我的推荐和口碑...... SO用户commonsware 会很高兴:) :P

标签: android android-widget imageview remoteview


【解决方案1】:

尝试不需要将图像解码为位图,只需从图像路径获取图像的URI:

File tempFile = new File(Environment.getExternalStorageDirectory()+"/XX/facepalm%d.jpeg");
Uri  imgUri=Uri.fromFile(tempFile);
ImageView  imageView=(ImageView)findViewById(R.id.imageuri);
imageView.setImageURI(imgUri);

【讨论】:

  • 这解决了它,我感谢你,虽然我没有完全使用它我只使用了 File tempFile = new File(Environment.getExternalStorageDirectory()+"/XX/facepalm%d.jpeg"); uri imgUri=Uri.fromFile(tempFile);
【解决方案2】:

检查以下代码:

Bitmap bitmap = null;
    Boolean isSDPresent = android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);
    if(isSDPresent)
    {
       String pathOfImageInSD = Environment.getExternalStorageDirectory()+"/"+"facepalm.png";
       bitmap = BitmapFactory.decodeFile(pathOfImageInSD);
    }
ImageView myImageView = (ImageView)findViewById(R.id.imageview1);
myImageView.setImageBitmap(bitmap);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-20
    相关资源
    最近更新 更多