json ファイルの写真で「ギャラリー」を作成しようとしています。写真付きのグリッドを表示するために RecyclerView を使用しています。
画像をクリックすると、新しいアクティビティが開き、画像情報 (URL と名前) が他のアクティビティに「送信」されるため、同じ画像をダウンロードできます。
とにかく、画像を最大サイズまたは元のサイズでダウンロードするわけではなく、ピクセル化または低解像度のように見えます。また、画像を拡大縮小せずに画面いっぱいに表示したいと考えています。これはコードであり、画面いっぱいの画像は機能しますが、それでも見栄えは悪くなります。このチュートリアルhttp://inthecheesefactory.com/blog/get-to-know-glide-recommended-by-google/enのように、Glide のデフォルトのビットマップ形式を ARGB_888 に変更しようとしましたが、うまくいきませんでした。
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();
誰かがこれら2つの問題を解決するのを手伝ってくれることを願っています. 前もって感謝します。