package com.github.miao1007.animewallpaper.ui.activity; import android.app.WallpaperManager; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.WindowManager; import android.widget.ImageView; import android.widget.Toast; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import com.github.miao1007.animewallpaper.R; import com.github.miao1007.animewallpaper.utils.LogUtils; import com.github.miao1007.animewallpaper.utils.SquareUtils; import com.squareup.picasso.Callback; import uk.co.senab.photoview.PhotoViewAttacher; /** * Created by leon on 1/19/16. */ public class WallpaperSetActivity extends AppCompatActivity { private static final String TAG = LogUtils.makeLogTag(WallpaperSetActivity.class); @BindView(R.id.iv_photo) ImageView mIvPhoto; @BindView(R.id.photoview_iv_setwallpaper) ImageView mPhotoviewIvSetwallpaper; private Uri imageUri; private PhotoViewAttacher mAttacher; @OnClick(R.id.photoview_iv_setwallpaper) void photoview_iv_setwallpaper(ImageView view) { //BitmapDrawable drawable = (BitmapDrawable) mIvPhoto.getDrawable(); final Bitmap bitmap = mAttacher.getVisibleRectangleBitmap(); if (bitmap != null) { final WallpaperManager manager = WallpaperManager.getInstance(this); new Thread(new Runnable() { @Override public void run() { try { manager.setBitmap(bitmap); } catch (Exception e) { e.printStackTrace(); } finally { runOnUiThread(new Runnable() { @Override public void run() { finish(); } }); } } }).start(); } } @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); setContentView(R.layout.activity_photoview); ButterKnife.bind(this); imageUri = getIntent().getData(); if (imageUri == null) { Toast.makeText(WallpaperSetActivity.this, "No URI passed in intent, exiting WallpaperCropActivity", Toast.LENGTH_SHORT).show(); Log.e(TAG, "No URI passed in intent, exiting WallpaperCropActivity"); finish(); return; } Log.d(TAG, getIntent().getData().toString()); SquareUtils.getPicasso(this).load(getIntent().getData()).into(mIvPhoto, new Callback() { @Override public void onSuccess() { mAttacher = new PhotoViewAttacher(mIvPhoto); mAttacher.setScaleType(ImageView.ScaleType.CENTER_CROP); mAttacher.update(); } @Override public void onError() { } }); } @Override protected void onDestroy() { if (mAttacher != null) { mAttacher.cleanup(); } super.onDestroy(); } @Override public void finish() { super.finish(); overridePendingTransition(0, android.R.anim.slide_in_left); } }