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..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 @@ -228,8 +228,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 +270,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..4783aad --- /dev/null +++ b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredImageView.java @@ -0,0 +1,20 @@ +package me.nereo.multi_image_selector.view; + +import android.content.Context; +import android.util.AttributeSet; +import android.widget.ImageView; + +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..240f294 --- /dev/null +++ b/multi-image-selector/src/main/java/me/nereo/multi_image_selector/view/SquaredLayout.java @@ -0,0 +1,20 @@ +package me.nereo.multi_image_selector.view; + +import android.content.Context; +import android.util.AttributeSet; +import android.widget.FrameLayout; + +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-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"/> + /> + /> - @@ -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 @@ -