From 66d1f7540d1a21981ad0de5b2c033e7608b8f7a8 Mon Sep 17 00:00:00 2001 From: litao Date: Tue, 16 Jun 2015 14:21:05 +0800 Subject: [PATCH 1/2] solved the issues of images show on some devices --- .../MultiImageSelectorFragment.java | 8 ++++++- .../adapter/ImageGridAdapter.java | 9 -------- .../view/SquaredImageView.java | 23 +++++++++++++++++++ .../view/SquaredLayout.java | 23 +++++++++++++++++++ .../main/res/layout/fragment_multi_image.xml | 3 +-- .../src/main/res/layout/list_item_camera.xml | 4 ++-- .../src/main/res/layout/list_item_image.xml | 3 +-- 7 files changed, 57 insertions(+), 16 deletions(-) create mode 100644 multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredImageView.java create mode 100644 multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredLayout.java diff --git a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java index d1bc4b4..4668e5b 100644 --- a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java +++ b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java @@ -1,6 +1,7 @@ package me.nereo.multi_image_selector; import android.annotation.TargetApi; +import android.app.ActionBar; import android.app.Activity; import android.content.Intent; import android.content.res.Configuration; @@ -228,8 +229,13 @@ public void onGlobalLayout() { final int numCount = width / desireSize; final int columnSpace = getResources().getDimensionPixelOffset(R.dimen.space_size); int columnWidth = (width - columnSpace*(numCount-1)) / numCount; + + mGridView.setNumColumns(numCount); + mImageAdapter.setItemSize(columnWidth); + + if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN){ mGridView.getViewTreeObserver().removeOnGlobalLayoutListener(this); }else{ @@ -265,7 +271,7 @@ public void onItemClick(AdapterView adapterView, View view, int i, long l) { */ private void createPopupFolderList(int width, int height) { mFolderPopupWindow = new ListPopupWindow(getActivity()); - mFolderPopupWindow.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); + mFolderPopupWindow.setBackgroundDrawable(new ColorDrawable(Color.WHITE)); mFolderPopupWindow.setAdapter(mFolderAdapter); mFolderPopupWindow.setContentWidth(width); mFolderPopupWindow.setWidth(width); diff --git a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/adapter/ImageGridAdapter.java b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/adapter/ImageGridAdapter.java index 23bed9d..cbfb15b 100644 --- a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/adapter/ImageGridAdapter.java +++ b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/adapter/ImageGridAdapter.java @@ -131,10 +131,6 @@ public void setItemSize(int columnWidth) { } mItemSize = columnWidth; - - mItemLayoutParams = new GridView.LayoutParams(mItemSize, mItemSize); - - notifyDataSetChanged(); } @Override @@ -196,11 +192,6 @@ public View getView(int i, View view, ViewGroup viewGroup) { } } - /** Fixed View Size */ - GridView.LayoutParams lp = (GridView.LayoutParams) view.getLayoutParams(); - if(lp.height != mItemSize){ - view.setLayoutParams(mItemLayoutParams); - } return view; } diff --git a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredImageView.java b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredImageView.java new file mode 100644 index 0000000..b9d3eb8 --- /dev/null +++ b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredImageView.java @@ -0,0 +1,23 @@ +package me.nereo.multi_image_selector.view; + +import android.content.Context; +import android.util.AttributeSet; +import android.widget.ImageView; + +/** + * Created by 李涛 on 15-6-16. + */ +final class SquaredImageView extends ImageView { + public SquaredImageView(Context context) { + super(context); + } + + public SquaredImageView(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth()); + } +} diff --git a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredLayout.java b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredLayout.java new file mode 100644 index 0000000..b4862f2 --- /dev/null +++ b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredLayout.java @@ -0,0 +1,23 @@ +package me.nereo.multi_image_selector.view; + +import android.content.Context; +import android.util.AttributeSet; +import android.widget.FrameLayout; + +/** + * Created by 李涛 on 15-6-16. + */ +final class SquaredLayout extends FrameLayout { + public SquaredLayout(Context context) { + super(context); + } + + public SquaredLayout(Context context, AttributeSet attrs) { + super(context, attrs); + } + + @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { + super.onMeasure(widthMeasureSpec, heightMeasureSpec); + setMeasuredDimension(getMeasuredWidth(), getMeasuredWidth()); + } +} diff --git a/multi-image-selector/src/main/res/layout/fragment_multi_image.xml b/multi-image-selector/src/main/res/layout/fragment_multi_image.xml index b41e16e..39273f9 100644 --- a/multi-image-selector/src/main/res/layout/fragment_multi_image.xml +++ b/multi-image-selector/src/main/res/layout/fragment_multi_image.xml @@ -13,8 +13,7 @@ android:verticalSpacing="@dimen/space_size" android:paddingBottom="?android:attr/actionBarSize" android:clipToPadding="false" - android:numColumns="auto_fit" - android:columnWidth="@dimen/image_size"/> + /> - @@ -14,4 +14,4 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" /> - \ No newline at end of file + \ No newline at end of file diff --git a/multi-image-selector/src/main/res/layout/list_item_image.xml b/multi-image-selector/src/main/res/layout/list_item_image.xml index b45f380..8c333a8 100644 --- a/multi-image-selector/src/main/res/layout/list_item_image.xml +++ b/multi-image-selector/src/main/res/layout/list_item_image.xml @@ -2,9 +2,8 @@ - From 48de524f4666bb4c0d3892c45cac5b289f0e8b5c Mon Sep 17 00:00:00 2001 From: litao Date: Tue, 16 Jun 2015 14:27:54 +0800 Subject: [PATCH 2/2] nothing --- .../nereo/multi_image_selector/MultiImageSelectorFragment.java | 1 - .../me/nereo/multi_image_selector/view/SquaredImageView.java | 3 --- .../java/me/nereo/multi_image_selector/view/SquaredLayout.java | 3 --- .../src/main/res/layout-v14/fragment_multi_image.xml | 3 +-- 4 files changed, 1 insertion(+), 9 deletions(-) diff --git a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java index 4668e5b..390329d 100644 --- a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java +++ b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/MultiImageSelectorFragment.java @@ -1,7 +1,6 @@ package me.nereo.multi_image_selector; import android.annotation.TargetApi; -import android.app.ActionBar; import android.app.Activity; import android.content.Intent; import android.content.res.Configuration; diff --git a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredImageView.java b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredImageView.java index b9d3eb8..4783aad 100644 --- a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredImageView.java +++ b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredImageView.java @@ -4,9 +4,6 @@ import android.util.AttributeSet; import android.widget.ImageView; -/** - * Created by 李涛 on 15-6-16. - */ final class SquaredImageView extends ImageView { public SquaredImageView(Context context) { super(context); diff --git a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredLayout.java b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredLayout.java index b4862f2..240f294 100644 --- a/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredLayout.java +++ b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredLayout.java @@ -4,9 +4,6 @@ import android.util.AttributeSet; import android.widget.FrameLayout; -/** - * Created by 李涛 on 15-6-16. - */ final class SquaredLayout extends FrameLayout { public SquaredLayout(Context context) { super(context); diff --git a/multi-image-selector/src/main/res/layout-v14/fragment_multi_image.xml b/multi-image-selector/src/main/res/layout-v14/fragment_multi_image.xml index 1b41929..72ffdd5 100644 --- a/multi-image-selector/src/main/res/layout-v14/fragment_multi_image.xml +++ b/multi-image-selector/src/main/res/layout-v14/fragment_multi_image.xml @@ -13,8 +13,7 @@ android:verticalSpacing="@dimen/space_size" android:paddingBottom="?android:attr/actionBarSize" android:clipToPadding="false" - android:numColumns="auto_fit" - android:columnWidth="@dimen/image_size"/> + />