項目描述
最近項目用到上傳頭像與上傳照片功能,在網上找了幾個别人封裝的控件都沒有合适的,于是自己就動手寫了上傳圖檔的功能,想到是常用功能,在閑暇時間進行了封裝,共享給大家使用。
功能描述:
- 動态權限(Rxpermissions)
- 相機(支援7.0)
- 相冊
- 剪切
- 圖檔壓縮(Luban)
項目效果
導入
将其添加到存儲庫末尾的根build.gradle中
步驟1.将JitPack存儲庫添加到建構檔案中
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
步驟2.添加依賴項
dependencies {
implementation 'com.github.fuliang0721:FlPhoto:v1.0'
}
# 使用
方法 | 描述 |
---|---|
show | 顯示 |
hide | 隐藏 |
isShow | 是否顯示 |
isCrop | 是否剪切 true是 false否 |
setZipSize | 不壓縮的門檻值,機關為ķ |
步驟1
implements FlResult
步驟2
FlPhoto flPhoto = new FlPhoto(this,this);
flPhoto.isCrop(true);
flPhoto.setZipSize();
步驟3
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
ActivityResultBean activityResultBean = new ActivityResultBean();
activityResultBean.setRequestCode(requestCode);
activityResultBean.setResultCode(resultCode);
activityResultBean.setData(data);
flPhoto.setActivityResult(activityResultBean);
}
步驟4
@Override
public void flStart() {} //圖檔壓縮開始
@Override
public void flSuccess(File file) {} //圖檔壓縮成功
@Override
public void flError(Throwable e) {} //圖檔壓縮錯誤
代碼
public class MainActivity extends AppCompatActivity implements FlResult{
Button button;
ImageView main_img_show;
FlPhoto flPhoto;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
flPhoto = new FlPhoto(this,this);
flPhoto.isCrop(true);
flPhoto.setZipSize();
button = findViewById(R.id.main_btn_button);
main_img_show = findViewById(R.id.main_img_show);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
flPhoto.show();
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
ActivityResultBean activityResultBean = new ActivityResultBean();
activityResultBean.setRequestCode(requestCode);
activityResultBean.setResultCode(resultCode);
activityResultBean.setData(data);
flPhoto.setActivityResult(activityResultBean);
}
@Override
public void flStart() { //圖檔壓縮開始
}
@Override
public void flSuccess(File file) { //圖檔壓縮成功
Glide.with(this)
.load(file)
.skipMemoryCache(true)
.diskCacheStrategy(DiskCacheStrategy.NONE) //不使用硬碟緩存
.into(main_img_show);
}
@Override
public void flError(Throwable e) { //圖檔壓縮錯誤
}
}
Github 位址
如果有問題或者意見,請留言給我,我會在閑暇時間繼續更新。