Explorar o código

Lots of improvements and small additions to the MaterialSimpleListAdapter and Item.

Aidan Follestad %!s(int64=9) %!d(string=hai) anos
pai
achega
b8341cb80e

+ 2 - 1
README.md

@@ -1157,7 +1157,8 @@ adapter.add(new MaterialSimpleListItem.Builder(this)
     .build());
 adapter.add(new MaterialSimpleListItem.Builder(this)
     .content(R.string.add_account)
-    .icon(R.drawable.ic_circle_lighter)
+    .icon(R.drawable.ic_content_add)
+    .iconPaddingDp(8)
     .build());
 
 new MaterialDialog.Builder(this)

+ 5 - 2
commons/src/main/java/com/afollestad/materialdialogs/simplelist/MaterialSimpleListAdapter.java

@@ -46,10 +46,13 @@ public class MaterialSimpleListAdapter extends ArrayAdapter<MaterialSimpleListIt
         if (dialog != null) {
             final MaterialSimpleListItem item = getItem(index);
             ImageView ic = (ImageView) view.findViewById(android.R.id.icon);
-            if (item.getIcon() != null)
+            if (item.getIcon() != null) {
                 ic.setImageDrawable(item.getIcon());
-            else
+                ic.setPadding(item.getIconPadding(), item.getIconPadding(),
+                        item.getIconPadding(), item.getIconPadding());
+            } else {
                 ic.setVisibility(View.GONE);
+            }
             TextView tv = (TextView) view.findViewById(android.R.id.title);
             tv.setTextColor(dialog.getBuilder().getItemColor());
             tv.setText(item.getContent());

+ 23 - 0
commons/src/main/java/com/afollestad/materialdialogs/simplelist/MaterialSimpleListItem.java

@@ -2,9 +2,12 @@ package com.afollestad.materialdialogs.simplelist;
 
 import android.content.Context;
 import android.graphics.drawable.Drawable;
+import android.support.annotation.DimenRes;
 import android.support.annotation.DrawableRes;
+import android.support.annotation.IntRange;
 import android.support.annotation.StringRes;
 import android.support.v4.content.ContextCompat;
+import android.util.TypedValue;
 
 /**
  * @author Aidan Follestad (afollestad)
@@ -25,11 +28,16 @@ public class MaterialSimpleListItem {
         return mBuilder.mContent;
     }
 
+    public int getIconPadding() {
+        return mBuilder.mIconPadding;
+    }
+
     public static class Builder {
 
         private final Context mContext;
         protected Drawable mIcon;
         protected CharSequence mContent;
+        protected int mIconPadding;
 
         public Builder(Context context) {
             mContext = context;
@@ -44,6 +52,21 @@ public class MaterialSimpleListItem {
             return icon(ContextCompat.getDrawable(mContext, iconRes));
         }
 
+        public Builder iconPadding(@IntRange(from = 0, to = Integer.MAX_VALUE) int padding) {
+            this.mIconPadding = padding;
+            return this;
+        }
+
+        public Builder iconPaddingDp(@IntRange(from = 0, to = Integer.MAX_VALUE) int paddingDp) {
+            this.mIconPadding = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, paddingDp,
+                    mContext.getResources().getDisplayMetrics());
+            return this;
+        }
+
+        public Builder iconPaddingRes(@DimenRes int paddingRes) {
+            return iconPadding(mContext.getResources().getDimensionPixelSize(paddingRes));
+        }
+
         public Builder content(CharSequence content) {
             this.mContent = content;
             return this;

+ 8 - 0
commons/src/main/res/drawable/gray_circle.xml

@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+    android:shape="oval">
+    <solid android:color="#BCBCBC" />
+    <size
+        android:width="@dimen/md_simplelist_icon"
+        android:height="@dimen/md_simplelist_icon" />
+</shape>

+ 8 - 10
commons/src/main/res/layout/md_simplelist_item.xml

@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:gravity="start|center_vertical"
-    android:minHeight="@dimen/md_listitem_height"
+    android:minHeight="@dimen/md_simpleitem_height"
+    android:orientation="horizontal"
     android:paddingEnd="@dimen/md_dialog_frame_margin"
     android:paddingLeft="@dimen/md_dialog_frame_margin"
     android:paddingRight="@dimen/md_dialog_frame_margin"
@@ -14,11 +15,10 @@
         android:id="@android:id/icon"
         android:layout_width="@dimen/md_simplelist_icon"
         android:layout_height="@dimen/md_simplelist_icon"
-        android:layout_alignParentLeft="true"
-        android:layout_alignParentStart="true"
-        android:layout_centerVertical="true"
+        android:layout_gravity="start|center_vertical"
         android:layout_marginEnd="@dimen/md_simplelist_icon_margin"
         android:layout_marginRight="@dimen/md_simplelist_icon_margin"
+        android:background="@drawable/gray_circle"
         android:scaleType="fitXY"
         tools:background="#f5f5f5"
         tools:ignore="ContentDescription" />
@@ -27,10 +27,8 @@
         android:id="@android:id/title"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:layout_centerVertical="true"
-        android:layout_toEndOf="@android:id/icon"
-        android:layout_toRightOf="@android:id/icon"
-        android:textSize="@dimen/md_content_textsize"
+        android:layout_gravity="center_vertical"
+        android:textSize="@dimen/md_simplelist_textsize"
         tools:text="Title" />
 
-</RelativeLayout>
+</LinearLayout>

+ 9 - 0
commons/src/main/res/values/dimens.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <dimen name="md_simpleitem_height">62dp</dimen>
+    <dimen name="md_simplelist_icon">44dp</dimen>
+    <dimen name="md_simplelist_icon_margin">16dp</dimen>
+    <dimen name="md_simplelist_textsize">18sp</dimen>
+
+</resources>

+ 0 - 3
core/src/main/res/values/dimens.xml

@@ -68,9 +68,6 @@
     <dimen name="md_action_corner_radius">2dp</dimen>
     <dimen name="md_divider_height">1dp</dimen>
 
-    <dimen name="md_simplelist_icon">40dp</dimen>
-    <dimen name="md_simplelist_icon_margin">16dp</dimen>
-
     <dimen name="md_bg_corner_radius">2dp</dimen>
     <dimen name="circular_progress_border">4dp</dimen>
     <dimen name="md_default_dialog_width">0dp</dimen>

+ 2 - 1
sample/src/main/java/com/afollestad/materialdialogssample/MainActivity.java

@@ -312,7 +312,8 @@ public class MainActivity extends AppCompatActivity implements
                 .build());
         adapter.add(new MaterialSimpleListItem.Builder(this)
                 .content(R.string.add_account)
-                .icon(R.drawable.ic_circle_lighter)
+                .icon(R.drawable.ic_content_add)
+                .iconPaddingDp(8)
                 .build());
 
         new MaterialDialog.Builder(this)

BIN=BIN
sample/src/main/res/drawable-hdpi/ic_circle_lighter.png


BIN=BIN
sample/src/main/res/drawable-hdpi/ic_content_add.png


BIN=BIN
sample/src/main/res/drawable-mdpi/ic_circle_lighter.png


BIN=BIN
sample/src/main/res/drawable-mdpi/ic_content_add.png


BIN=BIN
sample/src/main/res/drawable-xhdpi/ic_circle_lighter.png


BIN=BIN
sample/src/main/res/drawable-xhdpi/ic_content_add.png


BIN=BIN
sample/src/main/res/drawable-xxhdpi/ic_circle_lighter.png


BIN=BIN
sample/src/main/res/drawable-xxhdpi/ic_content_add.png


BIN=BIN
sample/src/main/res/drawable-xxxhdpi/ic_content_add.png