Skip to content

Commit

Permalink
添加startActivityForResult
Browse files Browse the repository at this point in the history
  • Loading branch information
liyu20 committed Aug 30, 2018
1 parent d02960f commit 69d5f95
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 67 deletions.
66 changes: 40 additions & 26 deletions demo/src/main/java/com/example/albumDemo/MainActivity.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.example.albumDemo;

import android.Manifest;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
Expand All @@ -12,6 +13,8 @@
import com.yu.bundles.album.ConfigBuilder;
import com.yu.bundles.album.MaeAlbum;
import com.yu.bundles.album.OnPreviewLongClickListener;
import com.yu.bundles.monitorfragment.MAEMonitorFragment;
import com.yu.bundles.monitorfragment.MAEPermissionCallback;

import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -42,29 +45,40 @@ public void onPreviewLongClick(Object imgPath) {
}

@Override
public void onClick(View view) {
MaeAlbum.setNavigationIcon(R.mipmap.mae_album_ic_action_back);
switch (view.getId()) {
case R.id.open_album_blue:
MaeAlbum.setStyle(R.style.MyAlumBlue);
blueStyle();
break;
case R.id.open_album_red:
MaeAlbum.setStyle(R.style.MyAlumRed);
redStyle();
break;
case R.id.open_album_user:
MaeAlbum.setStyle(R.style.MyAlumWhite);
userStyle();
break;
case R.id.outer_album_overview:
MaeAlbum.setStyle(R.style.MyAlumWhite);
ArrayList<String> list = new ArrayList<>();
list.add("http://imgsrc.baidu.com/image/c0%3Dshijue1%2C0%2C0%2C294%2C40/sign=74c4b391865494ee932f075a459c8a8b/f11f3a292df5e0fe1e3fbb2f566034a85edf72fc.jpg");
list.add("http://c.hiphotos.baidu.com/zhidao/pic/item/dcc451da81cb39dbccfc0e4ad4160924ab1830e9.jpg");
MaeAlbum.startPreview(this, list, 0, false, false, false);
break;
}
public void onClick(final View view) {
MAEMonitorFragment.getInstance(this).requestPermission(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE}, new MAEPermissionCallback() {
@Override
public void onPermissionApplySuccess() {
MaeAlbum.setNavigationIcon(R.mipmap.mae_album_ic_action_back);
switch (view.getId()) {
case R.id.open_album_blue:
MaeAlbum.setStyle(R.style.MyAlumBlue);
blueStyle();
break;
case R.id.open_album_red:
MaeAlbum.setStyle(R.style.MyAlumRed);
redStyle();
break;
case R.id.open_album_user:
MaeAlbum.setStyle(R.style.MyAlumWhite);
userStyle();
break;
case R.id.outer_album_overview:
MaeAlbum.setStyle(R.style.MyAlumWhite);
ArrayList<String> list = new ArrayList<>();
list.add("http://imgsrc.baidu.com/image/c0%3Dshijue1%2C0%2C0%2C294%2C40/sign=74c4b391865494ee932f075a459c8a8b/f11f3a292df5e0fe1e3fbb2f566034a85edf72fc.jpg");
list.add("http://c.hiphotos.baidu.com/zhidao/pic/item/dcc451da81cb39dbccfc0e4ad4160924ab1830e9.jpg");
MaeAlbum.startPreview(MainActivity.this, list, 0, true, false, true);
break;
}
}

@Override
public void onPermissionApplyFailure(List<String> list, List<Boolean> list1) {

}
});
}

private void userStyle() {
Expand All @@ -90,7 +104,7 @@ private void blueStyle() {
.column(3)
.fileType(ConfigBuilder.FILE_TYPE.VIDEO)
.setIsShowCapture(true)
.forResult(new AlbumListener() {
/*.forResult(new AlbumListener() {
@Override
public void onSelected(List<String> ps) { // 选择完毕回调
show(ps);
Expand All @@ -100,7 +114,8 @@ public void onSelected(List<String> ps) { // 选择完毕回调
public void onFull(List<String> ps, String p) { // 选满了的回调
Toast.makeText(getApplicationContext(), "选满了", Toast.LENGTH_SHORT).show();
}
});
});*/
.forResult(20);
}

private void redStyle() {
Expand All @@ -123,7 +138,6 @@ public void onFull(List<String> ps, String p) { // 选满了的回调
Toast.makeText(getApplicationContext(), "选满了", Toast.LENGTH_SHORT).show();
}
});

}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
}

private void init(){
requestWindowFeature(Window.FEATURE_NO_TITLE);
/*requestWindowFeature(Window.FEATURE_NO_TITLE);
if (Build.VERSION.SDK_INT >= 21) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
Expand All @@ -49,6 +49,12 @@ private void init(){
((ViewGroup)childView).setClipToPadding(true);
}
}
}*/
if (Build.VERSION.SDK_INT >= 23) {
// 系统 6.0 以上 状态栏白底黑字的实现方法
this.getWindow()
.getDecorView()
.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
}

Expand Down
81 changes: 41 additions & 40 deletions mae-bundles-album/src/main/java/com/yu/bundles/album/MaeAlbum.java
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,6 @@ public final class MaeAlbum {
*/
private int column = 3;

/**
* 图片选中回调接口
*/
private AlbumListener albumListener;

/*
* 是否显示拍照
* */
Expand Down Expand Up @@ -190,24 +185,10 @@ public static void setOnPreviewLongClickListener (OnPreviewLongClickListener onP
ConfigBuilder.onPreviewLongClickListener = onPreviewLongClickListener;
}

/**
* 启动方法
*
*/
public void forResult(final AlbumListener albumListener) {
Activity activity = mContext.get();
if (activity == null || albumListener == null) {
return;
}

//Intent intent = new Intent(activity, ImageActivity.class);
Intent intent = new Intent(activity, ImageCursorActivity.class);
Fragment fragment = mFragment != null ? mFragment.get() : null;

private void initConfig(Activity activity) {
// 设置 内部config
ConfigBuilder.column = this.column;
ConfigBuilder.max = this.maxSize;
ConfigBuilder.setListener(albumListener);
ConfigBuilder.MIN_FILE_SIZE = this.minFileSize;
ConfigBuilder.MAX_FILE_SIZE = this.maxFileSize;
ConfigBuilder.mimeTypes = this.mimeTypes;
Expand All @@ -216,28 +197,48 @@ public void forResult(final AlbumListener albumListener) {
ConfigBuilder.photoSavedDirPath = this.photoSavedDirPath;

initStaticConfig(activity);
}

if (fragment != null) {
MAEMonitorFragment.getInstance(fragment).startActivityForResult(intent, 325467, new MAEActivityResultListener() {
@Override
public void onActivityResult(int i, int i1, Intent intent) {
if(i1 == Activity.RESULT_OK && intent != null){
List<String> list = intent.getStringArrayListExtra(ImageCursorActivity.EXTRA_RESULT_SELECTION_PATH);
albumListener.onSelected(list);
}
}
});
} else {
MAEMonitorFragment.getInstance(activity).startActivityForResult(intent, 325467, new MAEActivityResultListener() {
@Override
public void onActivityResult(int i, int i1, Intent intent) {
if(i1 == Activity.RESULT_OK && intent != null){
List<String> list = intent.getStringArrayListExtra(ImageCursorActivity.EXTRA_RESULT_SELECTION_PATH);
albumListener.onSelected(list);
}
}
});
public void forResult(int requestCode) {
Activity activity = mContext.get();
if(activity == null && mFragment.get() != null){
activity = mFragment.get().getActivity();
}
if (activity == null) {
return;
}
Intent intent = new Intent(activity, ImageCursorActivity.class);
initConfig(activity);
activity.startActivityForResult(intent, requestCode);
}

/**
* 启动方法
*
*/
public void forResult(final AlbumListener albumListener) {
Activity activity = mContext.get();
if(activity == null && mFragment.get() != null){
activity = mFragment.get().getActivity();
}
if (activity == null || albumListener == null) {
return;
}
ConfigBuilder.setListener(albumListener);

//Intent intent = new Intent(activity, ImageActivity.class);
Intent intent = new Intent(activity, ImageCursorActivity.class);
initConfig(activity);

MAEMonitorFragment.getInstance(activity).startActivityForResult(intent, 325467, new MAEActivityResultListener() {
@Override
public void onActivityResult(int i, int i1, Intent intent) {
if(i1 == Activity.RESULT_OK && intent != null){
List<String> list = intent.getStringArrayListExtra(ImageCursorActivity.EXTRA_RESULT_SELECTION_PATH);
albumListener.onSelected(list);
}
}
});
}

// --------------------- 外界用的图片预览方法
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ public void init(final AlbumBaseActivity activity, View... view){
}
}

@Override
public void inflateMenu(int resId) {
super.inflateMenu(resId);
refreshStyle();
}

public void refreshStyle(){
getContext().getTheme().resolveAttribute(R.attr.colorPrimary, typedValue, true);
getContext().getTheme().resolveAttribute(R.attr.mae_album_topBar_text_color, contentVal, true);
Expand Down

0 comments on commit 69d5f95

Please sign in to comment.