Browse Source

[마이][Common] 버킷리스트 작성 이미지 리스트 클릭시 토글효과 구현

Hasemi 7 years ago
parent
commit
06339455e9

+ 17 - 2
app/src/main/java/kr/co/zumo/app/lifeplus/bean/TextImageBean.java

@@ -1,5 +1,8 @@
 package kr.co.zumo.app.lifeplus.bean;
 
+import android.support.annotation.DrawableRes;
+import android.support.annotation.StringRes;
+
 /**
  * TextImageBean
  * <pre>
@@ -10,16 +13,28 @@ package kr.co.zumo.app.lifeplus.bean;
  * @history 하세미   [2018-10-18]   [최초 작성]
  * @since 2018-10-18
  */
-public class TextImageBean extends JsonBeanBase{
+public class TextImageBean extends JsonBeanBase {
 
+  @DrawableRes
   private int imageResource;
+
+  @StringRes
   private int textResource;
+  private boolean isClicked;
 
-  public TextImageBean(int imageResource, int textResource) {
+  public TextImageBean(@DrawableRes int imageResource, @StringRes int textResource) {
     this.imageResource = imageResource;
     this.textResource = textResource;
   }
 
+  public boolean isClicked() {
+    return isClicked;
+  }
+
+  public void setClicked(boolean clicked) {
+    isClicked = clicked;
+  }
+
   public int getImageResource() {
     return imageResource;
   }

+ 24 - 36
app/src/main/java/kr/co/zumo/app/lifeplus/view/fragment/bucketlist/AddMyBucketListViewHolder.java

@@ -1,14 +1,5 @@
 package kr.co.zumo.app.lifeplus.view.fragment.bucketlist;
 
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.BitmapShader;
-import android.graphics.Canvas;
-import android.graphics.Color;
-import android.graphics.Paint;
-import android.graphics.Shader;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
 import android.support.v7.widget.RecyclerView;
 import android.view.View;
 import android.widget.ImageView;
@@ -16,7 +7,6 @@ import android.widget.TextView;
 
 import kr.co.zumo.app.R;
 import kr.co.zumo.app.lifeplus.bean.TextImageBean;
-import kr.co.zumo.app.lifeplus.util.ResourceUtil;
 
 /**
  * AddMyBucketListViewHolder
@@ -52,32 +42,30 @@ public class AddMyBucketListViewHolder extends RecyclerView.ViewHolder {
   }
 
   private void onClickImage(TextImageBean bean) {
-    Bitmap bitmap = BitmapFactory.decodeResource(itemView.getResources(), bean.getImageResource());
-    Drawable circleFrame = new BitmapDrawable(itemView.getResources(), getCircleBitmap(bitmap, ResourceUtil.dpToPx(2)));
-    //textViewMyBucketExample.setText(bean.getTextResource());
-    imageViewSelectImage.setBackground(circleFrame);
+    bean.setClicked(!bean.isClicked());
+    imageViewSelectImage.setBackground(bean.isClicked() == true ? itemView.getResources().getDrawable(R.drawable.image_circle_border) : itemView.getResources().getDrawable(R.drawable.radio_uncheck));
   }
 
-  public static Bitmap getCircleBitmap(Bitmap bitmap , int borderWidth) {
-    if (bitmap == null || bitmap.isRecycled()) {
-      return null;
-    }
-    final int width = bitmap.getWidth() + borderWidth;
-    final int height = bitmap.getHeight() + borderWidth;
-    Bitmap canvasBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
-    BitmapShader shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP.CLAMP);
-    Paint paint = new Paint();
-    paint.setAntiAlias(true);
-    paint.setShader(shader);
-
-    Canvas canvas = new Canvas(canvasBitmap);
-    float radius = width > height ? ((float) height) / 2f : ((float) width) / 2f;
-    canvas.drawCircle(width / 2, height / 2, radius, paint);
-    paint.setShader(null);
-    paint.setStyle(Paint.Style.STROKE);
-    paint.setColor(Color.WHITE);
-    paint.setStrokeWidth(borderWidth);
-    canvas.drawCircle(width / 2, height / 2, radius - borderWidth / 2, paint);
-    return canvasBitmap;
-  }
+//  public static Bitmap getCircleBitmap(Bitmap bitmap , int borderWidth) {
+//    if (bitmap == null || bitmap.isRecycled()) {
+//      return null;
+//    }
+//    final int width = bitmap.getWidth() + borderWidth;
+//    final int height = bitmap.getHeight() + borderWidth;
+//    Bitmap canvasBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
+//    BitmapShader shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP.CLAMP);
+//    Paint paint = new Paint();
+//    paint.setAntiAlias(true);
+//    paint.setShader(shader);
+//
+//    Canvas canvas = new Canvas(canvasBitmap);
+//    float radius = width > height ? ((float) height) / 2f : ((float) width) / 2f;
+//    canvas.drawCircle(width / 2, height / 2, radius, paint);
+//    paint.setShader(null);
+//    paint.setStyle(Paint.Style.STROKE);
+//    paint.setColor(Color.WHITE);
+//    paint.setStrokeWidth(borderWidth);
+//    canvas.drawCircle(width / 2, height / 2, radius - borderWidth / 2, paint);
+//    return canvasBitmap;
+//  }
 }

+ 12 - 0
app/src/main/res/drawable/image_circle_border.xml

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

+ 3 - 2
app/src/main/res/layout/add_my_bucket_image_list.xml

@@ -3,8 +3,8 @@
   xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:app="http://schemas.android.com/apk/res-auto"
   xmlns:tools="http://schemas.android.com/tools"
-  android:layout_width="wrap_content"
-  android:layout_height="wrap_content">
+  android:layout_width="50dp"
+  android:layout_height="50dp">
 
   <ImageView
     android:id="@+id/image_view_select_image"
@@ -13,5 +13,6 @@
     android:paddingStart="5dp"
     android:paddingEnd="5dp"
     app:srcCompat="@drawable/img_select_bg_1"
+    tools:background="@drawable/image_circle_border"
     />
 </LinearLayout>

+ 2 - 1
app/src/main/res/layout/fragment_add_my_bucket_list.xml

@@ -14,6 +14,7 @@
     android:layout_alignParentStart="true"
     android:layout_centerVertical="true"
     android:background="@null"
+    android:paddingBottom="20dp"
     android:hint="@string/make_my_bucket_list"
     android:lineSpacingExtra="11sp"
     android:maxLines="1"
@@ -42,7 +43,7 @@
     android:lineSpacingExtra="4sp"
     android:textColor="@color/CFFFFFF"
     android:textSize="12sp"
-    tools:text="이스탄불에서 달콤한 디저트 맛보기"
+    android:text="@string/bucket_select_text1"
     />
 
   <ImageView