diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 516285e..e217157 100644 Binary files a/.idea/caches/build_file_checksums.ser and b/.idea/caches/build_file_checksums.ser differ diff --git a/app/build.gradle b/app/build.gradle index 8210e22..f384db7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -1,4 +1,5 @@ apply plugin: 'com.android.application' +apply plugin: 'android-aspectjx' android { compileSdkVersion 26 @@ -26,5 +27,6 @@ dependencies { androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' - compile project(path: ':imageset') + implementation project(':imageset') + //implementation 'com.github.JuHonggang:PermissionManager:0.16' } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 7349b36..5e7d368 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ - selectedPhotos; + private GridView photoGrid; + private BaseAdapter photoAdapter; + private ArrayList selectedPhotos = new ArrayList<>(); @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_album_layout); Button chooseButton = (Button)findViewById(R.id.choose_button); - photoLayout = (LinearLayout) findViewById(R.id.photo_layout); + photoGrid = (GridView) findViewById(R.id.photo_grid); + + int type = getIntent().getIntExtra("type", 0); + if (!ImageLoaderManager.getInstance().isInit()) { + if (type == 0) { + ImageLoaderManager.getInstance().init(getApplicationContext(), new FrescoInstance()); + } else if (type == 1) { + ImageLoaderManager.getInstance().init(getApplicationContext(), new UILInstance()); + } else if (type == 2) { + ImageLoaderManager.getInstance().init(getApplicationContext(), new GlideInstance()); + } else { + /** + * Nothing + */ + } + } chooseButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { - new PhotoPicker.Builder() + PhotoPicker picker = new PhotoPicker.Builder() .setIsDialog(false) .setIsShowCamera(false) - .setMaxPhotoCount(3) + .setMaxPhotoCount(9) .setSelectedPhotos(selectedPhotos) - .builder().chooseImage(AlbumActivity.this); + .builder(); + picker.chooseImage(AlbumActivity.this, new OnSelectPhotoListener() { + @Override + public void onSelected(ArrayList selectedPhotoList) { + selectedPhotos.clear(); + selectedPhotos.addAll(selectedPhotoList); + setPhotoAdapter(); + } + }); } }); } - @Override - protected void onActivityResult(int requestCode, int resultCode, Intent data) { - super.onActivityResult(requestCode, resultCode, data); - if (requestCode == PhotoPicker.REQUEST_CODE_CHOOSE_PHOTO && data != null) { - selectedPhotos = data.getStringArrayListExtra(PhotoPicker.SELECTED_PHOTOS); - if (selectedPhotos != null && selectedPhotos.size() > 0) { - photoLayout.removeAllViews(); - int size =(DisplayUtil.getScreenWidth() - DisplayUtil.dpToPx(48)) / 3; - LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(size, size); - params.leftMargin = DisplayUtil.dpToPx(8); - for (String photo : selectedPhotos) { - ImageView imageView = new ImageView(AlbumActivity.this); - imageView.setImageURI(Uri.parse("file://" + photo)); + public static void enter(Context context, int imageLoaderType) { + Intent intent = new Intent(context, AlbumActivity.class); + intent.putExtra("type", imageLoaderType); + context.startActivity(intent); + } + + private void setPhotoAdapter() { + if (photoAdapter == null) { + final int itemSize = (DisplayUtil.getScreenWidth() - DisplayUtil.dpToPx(72)) / 3; + final ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, itemSize); + photoAdapter = new BaseAdapter() { + @Override + public int getCount() { + return selectedPhotos.size(); + } + + @Override + public Object getItem(int position) { + return selectedPhotos.get(position); + } + + @Override + public long getItemId(int position) { + return position; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + WrapImageView imageView = new WrapImageView(AlbumActivity.this); imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); - photoLayout.addView(imageView, params); + ImageLoaderManager.getInstance().displayImage("file://" + getItem(position), imageView, itemSize, itemSize); + imageView.setLayoutParams(params); + return imageView; } - } + }; + + photoGrid.setAdapter(photoAdapter); + } else { + photoAdapter.notifyDataSetChanged(); } } + + @Override + protected void onDestroy() { + super.onDestroy(); + ImageLoaderManager.getInstance().onDestroy(); + } } diff --git a/app/src/main/java/com/sxu/imageset/ChooseAndCropImageActivity.java b/app/src/main/java/com/sxu/imageset/ChooseAndCropImageActivity.java index 6a10d97..7895430 100644 --- a/app/src/main/java/com/sxu/imageset/ChooseAndCropImageActivity.java +++ b/app/src/main/java/com/sxu/imageset/ChooseAndCropImageActivity.java @@ -3,7 +3,6 @@ import android.content.Intent; import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.app.AppCompatActivity; import android.text.TextUtils; @@ -14,10 +13,9 @@ import android.widget.Toast; import com.qiniu.android.http.ResponseInfo; -import com.sxu.smartpicture.choosePicture.ChoosePhotoDialog; -import com.sxu.smartpicture.choosePicture.ChoosePhotoManager; -import com.sxu.smartpicture.choosePicture.OnChoosePhotoListener; -import com.sxu.smartpicture.utils.PermissionUtil; +import com.sxu.smartpicture.choosepicture.ChoosePhotoDialog; +import com.sxu.smartpicture.choosepicture.ChoosePhotoManager; +import com.sxu.smartpicture.choosepicture.OnSimpleChoosePhotoListener; import com.sxu.smartpicture.utils.UploadUtils; import org.json.JSONObject; @@ -50,29 +48,12 @@ public void onClick(View v) { dialog.setOnItemListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView adapterView, View view, int i, long l) { - ChoosePhotoManager.getInstance().setAutoCrop(true); if (i == 0) { - ChoosePhotoManager.getInstance().choosePhotoFromCamera(ChooseAndCropImageActivity.this); + ChoosePhotoManager.getInstance().takePicture(ChooseAndCropImageActivity.this, true); } else { - ChoosePhotoManager.getInstance().choosePhotoFromAlbum(ChooseAndCropImageActivity.this); + ChoosePhotoManager.getInstance().choosePhotoFromAlbum(ChooseAndCropImageActivity.this, true); } - ChoosePhotoManager.getInstance().setChoosePhotoListener(new OnChoosePhotoListener() { - @Override - public void choosePhotoFromAlbum(Uri uri) { - if (uri != null) { - filePath = uri.getPath(); - imageView.setImageURI(uri); - } - } - - @Override - public void choosePhotoFromCamera(Uri uri) { - if (uri != null) { - filePath = uri.getPath(); - imageView.setImageURI(uri); - } - } - + ChoosePhotoManager.getInstance().setChoosePhotoListener(new OnSimpleChoosePhotoListener() { @Override public void cropPhoto(Uri uri) { if (uri != null) { @@ -131,10 +112,4 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); ChoosePhotoManager.getInstance().onActivityResult(this, requestCode, data); } - - @Override - public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { - super.onRequestPermissionsResult(requestCode, permissions, grantResults); - PermissionUtil.requestCallback(this, requestCode, permissions, grantResults); - } } diff --git a/app/src/main/java/com/sxu/imageset/ImageLoaderActivity.java b/app/src/main/java/com/sxu/imageset/ImageLoaderActivity.java index 167a56b..180c38a 100644 --- a/app/src/main/java/com/sxu/imageset/ImageLoaderActivity.java +++ b/app/src/main/java/com/sxu/imageset/ImageLoaderActivity.java @@ -1,28 +1,23 @@ package com.sxu.imageset; -import android.app.SharedElementCallback; -import android.content.Intent; import android.graphics.Bitmap; -import android.os.Build; import android.os.Bundle; -import android.support.v4.app.ActivityCompat; import android.support.v4.view.ViewCompat; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.TextView; import android.widget.Toast; -import com.sxu.imageloader.ImageLoaderManager; -import com.sxu.imageloader.WrapImageView; -import com.sxu.imageloader.instance.FrescoInstance; -import com.sxu.imageloader.instance.GlideInstance; -import com.sxu.imageloader.instance.UILInstance; -import com.sxu.imageloader.listener.ImageLoaderListener; -import com.sxu.smartpicture.album.PhotoPreviewActivity; +import com.sxu.smartpicture.album.activity.PhotoPreviewActivity; +import com.sxu.smartpicture.imageloader.ImageLoaderManager; +import com.sxu.smartpicture.imageloader.WrapImageView; +import com.sxu.smartpicture.imageloader.instance.FrescoInstance; +import com.sxu.smartpicture.imageloader.instance.GlideInstance; +import com.sxu.smartpicture.imageloader.instance.UILInstance; +import com.sxu.smartpicture.imageloader.listener.ImageLoaderListener; import java.util.ArrayList; import java.util.List; -import java.util.Map; /** @@ -65,7 +60,7 @@ protected void onCreate(Bundle savedInstanceState) { ViewCompat.setTransitionName(blurImage, PhotoPreviewActivity.TRANSITION_NAME_PREFIX + "1"); ViewCompat.setTransitionName(rectangleImage, PhotoPreviewActivity.TRANSITION_NAME_PREFIX + "2"); ImageLoaderManager.getInstance().displayImage("http://t.cn/RTRKzUt", image); - ImageLoaderManager.getInstance().displayImage("http://img.tuku.cn/file_thumb/201602/m2016021513470744.jpg", blurImage); + ImageLoaderManager.getInstance().displayImage("http://t.cn/RTRKzUt", blurImage); ImageLoaderManager.getInstance().displayImage("http://t.cn/RTRKzUt", rectangleImage); ImageLoaderManager.getInstance().displayImage("http://t.cn/RTRKJvS", circleImage); diff --git a/app/src/main/java/com/sxu/imageset/MainActivity.java b/app/src/main/java/com/sxu/imageset/MainActivity.java index c911ca6..61add8f 100644 --- a/app/src/main/java/com/sxu/imageset/MainActivity.java +++ b/app/src/main/java/com/sxu/imageset/MainActivity.java @@ -1,11 +1,12 @@ package com.sxu.imageset; +import android.Manifest; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.RadioGroup; - +import android.widget.Toast; public class MainActivity extends AppCompatActivity implements View.OnClickListener { @@ -53,9 +54,10 @@ public void onClick(View v) { startActivity(intent); break; case R.id.album_button: - startActivity(new Intent(this, AlbumActivity.class)); + AlbumActivity.enter(this, imageLoaderType); break; case R.id.choose_image_button: + //test(); startActivity(new Intent(this, ChooseAndCropImageActivity.class)); break; default: diff --git a/app/src/main/res/layout/activity_album_layout.xml b/app/src/main/res/layout/activity_album_layout.xml index 15bfe6a..251f431 100644 --- a/app/src/main/res/layout/activity_album_layout.xml +++ b/app/src/main/res/layout/activity_album_layout.xml @@ -12,12 +12,15 @@ android:text="选择图片" android:textColor="@android:color/white" android:background="#4db6ac"/> - + android:paddingLeft="24dp" + android:paddingRight="24dp" + android:horizontalSpacing="12dp" + android:verticalSpacing="12dp" + android:numColumns="3" + android:scrollbars="none"/> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_choose_and_crop_image_layout.xml b/app/src/main/res/layout/activity_choose_and_crop_image_layout.xml index 9e2e94d..ec079d3 100644 --- a/app/src/main/res/layout/activity_choose_and_crop_image_layout.xml +++ b/app/src/main/res/layout/activity_choose_and_crop_image_layout.xml @@ -39,4 +39,13 @@ android:text="上传图片到七牛" android:textColor="@android:color/white" android:background="#7986cb"/> + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_image_loader_layout.xml b/app/src/main/res/layout/activity_image_loader_layout.xml index f2b0961..66912bc 100644 --- a/app/src/main/res/layout/activity_image_loader_layout.xml +++ b/app/src/main/res/layout/activity_image_loader_layout.xml @@ -4,7 +4,7 @@ android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical"> - - - - -