使用Glide Library

时间:2015-07-09 05:17:47

标签: android image bitmap download android-glide

我正试图创建一个"画廊"与json文件中的图片。我使用RecyclerView显示带有图片的网格。

单击图片时,会打开一个新活动,然后发送"其他活动的图片信息(网址和名称),因此可以下载相同的图片。

无论如何,它不会以最大尺寸或原始尺寸下载图片,而且看起来像是像素化或低分辨率。我还希望图片能够在不缩放的情况下填满屏幕。这是填充屏幕的代码和图片,但看起来仍然很糟糕。我尝试将Glide默认位图格式更改为ARGB_888,就像在本教程http://inthecheesefactory.com/blog/get-to-know-glide-recommended-by-google/en中一样,但没有用。

Glide.with(this)
        .load(wallUrl)
        .fitCenter()
        .placeholder(d)
        .into(mPhoto);

布局是

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:fab="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    tools:context="jahirfiquitiva.projects.activities.ViewerActivity">

    <include
        android:id="@+id/toolbar"
        layout="@layout/toolbar" />

    <jahirfiquitiva.projects.views.TouchImageView
        android:id="@+id/big_wallpaper"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/toolbar"
        android:scaleType="centerCrop"/>

    <com.melnykov.fab.FloatingActionButton
        android:id="@+id/walls_btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="@dimen/fab_margin"
        android:layout_marginEnd="@dimen/fab_margin"
        android:layout_marginRight="@dimen/fab_margin"
        android:src="@drawable/ic_wallpapers_fab"
        fab:fab_colorNormal="@color/white"
        fab:fab_colorPressed="@color/light_grey"
        fab:fab_colorRipple="@color/semitransparent_black" />

</RelativeLayout>

TouchImageView就是这样:https://gist.github.com/jahirfiquitiva/daaf5a81f09f21a44175

我还有一个FAB,当按下时会显示一个包含2个选项的对话框:应用或保存壁纸。

保存壁纸非常完美。应用也是如此,但在应用它时显示使用MaterialDialogs库的进度对话框,并且当图片似乎即将完成加载时,进度对话框冻结,所以我想修复它,但不知道什么可能是错的。这是代码:

new MaterialDialog.Builder(context)
                .title(R.string.apply)
                .content(R.string.confirm_apply)
                .positiveText(R.string.yes)
                .negativeText(android.R.string.cancel)
                .callback(new MaterialDialog.ButtonCallback() {
                    @Override
                    public void onPositive(MaterialDialog dialog) {
                        final MaterialDialog downloadDialog = new MaterialDialog.Builder(context)
                                .content(R.string.downloading_wallpaper)
                                .progress(true, 0)
                                .cancelable(false)
                                .show();

                        Glide.with(context)
                                .load(url)
                                .asBitmap()
                                .into(new SimpleTarget<Bitmap>() {
                                    @Override
                                    public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {

                                        if (resource != null) {
                                            downloadDialog.setContent(context.getString(R.string.setting_wall_title));
                                            WallpaperManager wm = WallpaperManager.getInstance(context);
                                            try {
                                                wm.setBitmap(resource);
                                                Toast.makeText(context, R.string.set_as_wall_done, Toast.LENGTH_LONG).show();
                                                Log.v("Wall", "It worked!");
                                            } catch (IOException e2) {
                                                Toast.makeText(context, e2.getLocalizedMessage(), Toast.LENGTH_LONG).show();
                                                Log.v("Wall", "Error " + e2.getMessage());
                                            }
                                            downloadDialog.dismiss();
                                        }
                                    }
                                })
                    }
                }).show();

希望有人能帮助我解决这两个问题。提前谢谢。

0 个答案:

没有答案