天天看點

上傳圖檔 相機相冊項目描述項目效果導入代碼

項目描述

最近項目用到上傳頭像與上傳照片功能,在網上找了幾個别人封裝的控件都沒有合适的,于是自己就動手寫了上傳圖檔的功能,想到是常用功能,在閑暇時間進行了封裝,共享給大家使用。

功能描述:
  • 動态權限(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 位址

如果有問題或者意見,請留言給我,我會在閑暇時間繼續更新。