效果图:
实现步骤:
1.添加依赖:
//photoview implementation 'com.github.chrisbanes.photoview:library:1.2.4' //使用Crop裁剪图片 implementation('com.yalantis:ucrop:2.2.0') { exclude group: 'com.android.support' exclude group: 'com.squareup.okio' exclude group: 'com.squareup.okhttp3' }
2.注册:注意此处是直接添加而不是新建Activity修改
<activity android:name="com.yalantis.ucrop.UCropActivity" android:screenOrientation="portrait" android:theme="@style/Theme.AppCompat.Light.NoActionBar"/>
3.上代码:
import android.app.AlertDialog; import android.content.ContentUris; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.provider.DocumentsContract; import android.provider.MediaStore; import android.support.annotation.RequiresApi; import android.util.DisplayMetrics; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.bumptech.glide.Glide; import com.bumptech.glide.request.RequestOptions; import com.yalantis.ucrop.UCrop; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import ds.com.dingshi.R; import ds.com.dingshi.base.BaseActivity; //我的头像 查看,更换头像操作 public class MineHeaderHandleActivity extends BaseActivity { @BindView(R.id.back) ImageView back; @BindView(R.id.titleTv1) TextView titleTv1; @BindView(R.id.more_iv) ImageView moreIv; @BindView(R.id.pv) uk.co.senab.photoview.PhotoView pv; private String headerUrl; private File file; private static final int CAMERA = 502; private static final int PHOTO = 501; private Uri imageUri; private String filePath;//文件path private String TAG = "MineHeaderHandleActivity"; private Uri destinationUri; @Override public int getLayoutId() { return R.layout.activity_mine_header_handle; } @Override public void initView() { headerUrl = getIntent().getStringExtra("headerUrl"); RequestOptions requestOptions = new RequestOptions(); requestOptions.placeholder(R.drawable.icon_error);//图片加载出来前,显示的图片 requestOptions.error(R.drawable.icon_error);//图片加载失败后,显示的图片 Glide.with( MineHeaderHandleActivity.this)//content是上下文 .load("http://img1.mukewang.com/56aa17e800018e6101000100-100-100.jpg")//图片地址 .apply(requestOptions)