标签: fresco

Picasso v/s Imageloader v/s Fresco vs Glide

发现:

  1. Picasso v/s ImageLoader的区别在这里......
  2. 关于图书馆GLIDE的信息在这里......
  3. 现在最近Facebook发布了名为Fresco的新图像库

问题:

  1. Picasso v/s Imageloader v/s Fresco有什么区别
  2. 我们什么时候可以使用Glide
  3. 哪个是最好的库.
  4. 如果每个图书馆都有自己的意义,那么它们是什么?

android universal-image-loader picasso fresco android-glide

336
推荐指数
6
解决办法
14万
查看次数

适用于Android的本地图像缓存解决方案:Square Picasso,Universal Image Loader,Glide,Fresco?

我正在寻找Android中的异步图像加载和缓存库.我打算使用Picasso,但我发现Universal Image Loader在GitHub上更受欢迎.有谁知道这两个图书馆?优点和缺点的摘要会很棒.

(我的所有图像都在本地磁盘上,因此我不需要联网,因此我认为Volley不合适)

android universal-image-loader picasso fresco android-glide

88
推荐指数
4
解决办法
7万
查看次数

图片未在Fresco中加载

我正在尝试在Fresco中加载图像,但图像似乎没有加载.当我添加占位符视图时,占位符显示.

public static void loadImg(final Context c, final SimpleDraweeView view, final String img){
    Uri uri = Uri.parse("https://placekitten.com/g/201/300");
    view.setImageURI(uri);
}
Run Code Online (Sandbox Code Playgroud)

注意,我正在应用程序中初始化Fresco,并且我在Manifest中有互联网使用.

SimpleDraweeView

        <com.facebook.drawee.view.SimpleDraweeView
        android:id="@+id/small_box_image"
        android:layout_width="match_parent"
        android:layout_height="150dp"
        fresco:placeholderImage="@drawable/google"
        fresco:fadeDuration="300"
        fresco:viewAspectRatio="1.33"
        />
Run Code Online (Sandbox Code Playgroud)

调用loadImg的方法

public static View generateTileView(Context c, Tile t){

    LayoutInflater inflater = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View view;
    boolean desc = false;

    switch(t.getObjectTypeName()){
        case Tile.OBJECT_NAME:
            view = inflater.inflate(R.layout.view_tile_small_object, null);
            break;
        case Tile.LOOK_CLOSER_NAME:
            view = inflater.inflate(R.layout.view_tile_small_look_closer, null);
            desc = true;
            break;
        case Tile.STORY_NAME:
            view = inflater.inflate(R.layout.view_tile_small_story, null);
            desc = true;
            break;
        case Tile.TOUR_NAME:
            view = …
Run Code Online (Sandbox Code Playgroud)

android fresco

23
推荐指数
1
解决办法
7745
查看次数

在Fresco的SimpleDraweeView中加载可绘制的图像资源

我使用了Fresco 0.5.2:

dependencies {
   compile 'com.facebook.fresco:fresco:0.5.2'
}
Run Code Online (Sandbox Code Playgroud)

我想用来SimpleDraweeView加载一个gif图像drawable.这是我的代码:

String path = ContentResolver.SCHEME_ANDROID_RESOURCE + "://"+ getResources().getResourcePackageName(R.drawable.default_app) + "/"
+ getResources().getResourceTypeName(R.drawable.default_app) + "/"
+ getResources().getResourceEntryName(R.drawable.default_app);
Uri uri =  Uri.parse(path);
simpleDraweeView =(SimpleDraweeView)
this.findViewById(R.id.simple_drawee_view);
        ImageRequest imageRequest = ImageRequestBuilder.newBuilderWithSource(uri).build();
        DraweeController controller = Fresco.newDraweeControllerBuilder()
                .setImageRequest(imageRequest)
                .setAutoPlayAnimations(true)
                .build();
        simpleDraweeView.setController(controller);
Run Code Online (Sandbox Code Playgroud)

default_app只是一个jpeg图像,它不起作用.

我用这个作为Fresco提到的文件.路径或代码有问题吗?

android fresco

19
推荐指数
3
解决办法
2万
查看次数

应用随机崩溃与致命信号7(SIGBUS),代码2或致命信号11(SIGSEGV),代码1

上下文

我正在创建一个应用程序,它应该显示一些图像Fragment,其中大部分是从互联网上下载的.

我正在使用Glide来处理我在我的CardViews上的图像加载和我的图像滑块上的Fresco(这个问题在SO上解释了我为什么使用两个图像库).

的lib的壁画部分主要是基于这个叉子AndroidImageSlider.

重要提示:我正在尝试加载的图像可以是PNGSVG.

更多信息:我正在使用运行Android 5.0.2 的Moto Maxx(国际版Droid Turbo).也发生在运行Android 4.4.2(cyanogen mod)的三星Galaxy S4上,但它的发生频率要低得多.

PS:没有使用NDK.

问题

有时,我的应用程序只是崩溃,无处不在,甚至没有任何用户交互.当它发生时,我在logcat上收到以下错误消息:

Fatal signal 7 (SIGBUS), code 2, fault addr 0x9a74c060 in tid 21894
Run Code Online (Sandbox Code Playgroud)

全栈:

04-07 07:59:08.110 21894 21894 F libc    : Fatal signal 7 (SIGBUS), code 2, fault addr 0x9a74c060 in tid 21894 (asus.saitestore)
04-07 07:59:08.161 21946 21946 E Diag_Lib: …
Run Code Online (Sandbox Code Playgroud)

svg android fresco android-glide

19
推荐指数
1
解决办法
4449
查看次数

Facebook Fresco使用wrap_content

我有一堆drawables,我想用壁画加载,我想使用wrap_content这些图像的大小,我怎么能在壁画的xml中做到这一点?或者,如果不可能使用xml,您如何在代码中执行此操作?

<com.facebook.drawee.view.SimpleDraweeView
          android:id="@+id/myImage"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          fresco:placeholderImage="@mipmap/myImage"/>
Run Code Online (Sandbox Code Playgroud)

除非我设置固定大小,否则上述代码无效.

android facebook fresco

15
推荐指数
2
解决办法
8730
查看次数

使用Facebook的Fresco加载位图

我正试图在我的Android应用程序中用Fresco替换Picasso.但是我不确定如何使用Fresco简单地加载位图.

毕加索我会做以下几点.

Bitmap poster = Picasso.with(getActivity())
                    .load(url)
                    .resize(Utils.convertDpToPixel(WIDTH,HEIGHT))
                    .centerCrop()
                    .get();
Run Code Online (Sandbox Code Playgroud)

我一直无法弄清楚如何用这个Fresco创建一个Bitmap.有任何想法吗?

android facebook bitmap picasso fresco

13
推荐指数
2
解决办法
2万
查看次数

Android - 如何从Fresco磁盘缓存获取图像文件?

我正在使用Fresco库.

我在Fresco文档中找不到任何相关信息,如何从Fresco的磁盘缓存中获取图像文件?

java android image-caching fresco

11
推荐指数
2
解决办法
1万
查看次数

Fresco以编程方式将Bitmap添加到Cache

我正在将图像上传到我的服务器,一旦上传,我的服务器就会响应新的URI(可以是与旧URL相同的URL),我想删除旧的缓存图像并为新URI插入新图像.

我试着这样做:

// Retrofit2 onResponse

String newImageUri = response.body().getUri();
String oldImageUri = Preferences.getUser().getImageUrl();   

// Remove old image from cache
Fresco.getImagePipeline().evictFromCache(Uri.parse(oldImageUri));               
Fresco.getImagePipeline().evictFromDiskCache(Uri.parse(oldImageUri));
Fresco.getImagePipeline().evictFromMemoryCache(Uri.parse(oldImageUri));
Fresco.getImagePipelineFactory().getMainFileCache().remove(new SimpleCacheKey(oldImageUri));

// Insert new image at new URI
try {
    Fresco.getImagePipelineFactory().getMainFileCache().insert(new SimpleCacheKey(newImageUri), new WriterCallback() {
        @Override
        public void write(OutputStream os) throws IOException {
            os.write(imageData); // byte[] or the new Bitmap
        }
    });
}
catch (Exception e) {
    e.printStackTrace();
}
uriProfileImage.setImageURI(newImageUri);
Run Code Online (Sandbox Code Playgroud)

没有例外,但我仍然只看到旧图像.

android bitmap fresco

9
推荐指数
1
解决办法
535
查看次数

我如何更新壁画SimpleDraweeView的图像,如果它由setImageURI设置一次

我正在使用facebook Fresco库和SimpleDraweeView来显示文件中的头像图像:

  Uri avaURI = Uri.fromFile(new File(getCacheDir(), Constants.AVA_FILE_NAME));
  simpleDrawee.setImageURI(avaURI);
Run Code Online (Sandbox Code Playgroud)

但是,如果我用图片更改文件(删除以前的文件并使用新图像创建相同的文件),我该如何更新(刷新)SimpleDraweeView?它仍然显示旧版本的图像.(我试图禁用缓存Fresco.getImagePipeline().evictFromMemoryCache(avaURI);但它没有帮助).

android imageview fresco

8
推荐指数
1
解决办法
4965
查看次数