【问题标题】:can't decode file bitmapfactory无法解码文件位图工厂
【发布时间】:2017-02-20 09:50:20
【问题描述】:

我必须使用 android 创建一个应用程序,该应用程序可以将用户图像查看到 circularimageview 以用于 circularimageview 我正在使用 com.pkmmte.view.CircularImageView 库并使用位图显示来自 URL 的图像,但我无法在 imageview 中显示图像它显示了一些错误

D/dalvikvm: GC_FOR_ALLOC freed 277K, 5% free 7693K/8044K, paused 2ms, total    2ms
D/dalvikvm: GC_FOR_ALLOC freed 747K, 9% free 8469K/9288K, paused 8ms, total 8ms
E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException:  /http:/hennasilks.com/jijo/informe/profile_images/galimg2017-02- 16T11:16:02.403+0530178.jpeg: open failed: ENOENT (No such file or directory)
I/System.out: jijonull
E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /http:/hennasilks.com/jijo/informe/profile_images/galimg2017-02-16T11:16:02.403+0530178.jpeg: open failed: ENOENT (No such file or directory)
I/System.out: jijonull
E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /http:/hennasilks.com/jijo/informe/profile_images/galimg2017-02-16T11:16:02.403+0530178.jpeg: open failed: ENOENT (No such file or directory)
 I/System.out: jijonull
 D/dalvikvm: GC_FOR_ALLOC freed 325K, 7% free 9612K/10284K, paused 5ms, total 6ms
 I/dalvikvm-heap: Grow heap (frag case) to 11.409MB for 2048012-byte allocation
  D/dalvikvm: GC_FOR_ALLOC freed 5K, 6% free 11606K/12288K, paused 7ms, total 7ms
 D/dalvikvm: GC_FOR_ALLOC freed 34K, 6% free 11604K/12288K, paused 5ms, total 5ms
 I/dalvikvm-heap: Grow heap (frag case) to 29.683MB for 19170444-byte allocation
D/dalvikvm: GC_FOR_ALLOC freed 4K, 3% free 30320K/31012K, paused 4ms, total 4ms
 V/FA: Inactivity, disconnecting from the service
V/FA: onUnbind called for intent. action: com.google.android.gms.measurement.START
V/FA: Local AppMeasurementService is shutting down

这是我使用显示图像的代码

 BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 4;
String profurl="http://hennasilks.com/jijo/informe/profile_images/galimg2017-02-16T11:16:02.403+0530178.jpeg";
Bitmap bitmap = BitmapFactory.decodeFile(profurl,options);
System.out.println("jijo"+bitmap);
int height = bitmap.getHeight(), width = bitmap.getWidth();
if (height > 1280 && width > 960)
{

    Bitmap imgbitmap = BitmapFactory.decodeFile(profurl);
    holder.prof.setImageURI(Uri.parse(String.valueOf(imgbitmap)));
    holder.prof.setVisibility(View.VISIBLE);
}
else {
    holder.prof.setImageURI(Uri.parse(String.valueOf(bitmap)));
    holder.prof.setVisibility(View.VISIBLE);
}

请帮我找到解决方案提前谢谢

【问题讨论】:

  • 使用毕加索或滑行
  • @DeepakKumar 举例
  • 如果你想通过 URL 加载图像,那么你应该使用 picasso 或 glide,因为它使用起来非常简单且重量轻
  • 请举个例子

标签: android url bitmap android-imageview bitmapfactory


【解决方案1】:

使用毕加索库或第一次将图像下载到本地存储并使用本地路径解码文件

    String profurl="http://hennasilks.com/jijo/informe/profile_images/galimg2017-02-16T11:16:02.403+0530178.jpeg";

    Picasso.with(yourActiviy.this).load(pic_url).error(R.drawable.profile_pic).into(iv__pic);

在 build.gradle 中添加这个

        compile 'com.squareup.picasso:picasso:2.5.2'

【讨论】:

  • 我可以使用位图加载
  • 是,但第一次下载图像并存储到本地存储中,然后设置
【解决方案2】:

首先您需要下载图像,然后将其转换为位图。 或者,您可以使用 glide 加载图像。 如果您使用的是 eclips edt,则下载 glide.jar 文件并将其放入您的 libs 文件夹,或者如果您使用的是工作室,则将此单行代码放入您的 gradle 文件 compile 'com.github.bumptech.glide:glide:3.7.0' 。 之后使用这一行来显示图像。

Glide.with(context).load(image url).into(your image view).

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-18
    相关资源
    最近更新 更多