瀏覽代碼

积分商城

xiongzhu 7 年之前
父節點
當前提交
e1f29e9665
共有 91 個文件被更改,包括 2248 次插入9 次删除
  1. 2 2
      app/build.gradle
  2. 6 1
      app/src/main/AndroidManifest.xml
  3. 9 0
      app/src/main/java/com/android/chmo/http/response/ExchangeRes.java
  4. 9 0
      app/src/main/java/com/android/chmo/http/response/MerchandiseRes.java
  5. 4 2
      app/src/main/java/com/android/chmo/http/response/Res.java
  6. 47 0
      app/src/main/java/com/android/chmo/http/service/IntegralService.java
  7. 24 0
      app/src/main/java/com/android/chmo/model/ExchangeInfo.java
  8. 15 0
      app/src/main/java/com/android/chmo/model/MerchandiseInfo.java
  9. 1 0
      app/src/main/java/com/android/chmo/model/UserInfo.java
  10. 2 0
      app/src/main/java/com/android/chmo/ui/activity/WelcomeActivity.java
  11. 67 0
      app/src/main/java/com/android/chmo/ui/activity/integral/ExchangeDetailActivity.java
  12. 65 0
      app/src/main/java/com/android/chmo/ui/activity/integral/ExchangeHistoryActivity.java
  13. 66 0
      app/src/main/java/com/android/chmo/ui/activity/integral/FillAddressActivity.java
  14. 165 0
      app/src/main/java/com/android/chmo/ui/activity/integral/PlaceOrderActivity.java
  15. 112 0
      app/src/main/java/com/android/chmo/ui/activity/integral/StoreActivity.java
  16. 2 2
      app/src/main/java/com/android/chmo/ui/activity/model/ModelDetailActivity.java
  17. 64 0
      app/src/main/java/com/android/chmo/ui/adpater/BaseAdapter.java
  18. 77 0
      app/src/main/java/com/android/chmo/ui/adpater/ExchangeHistoryAdapter.java
  19. 92 0
      app/src/main/java/com/android/chmo/ui/adpater/MerchandiseAdapter.java
  20. 70 0
      app/src/main/java/com/android/chmo/ui/dialog/MerchandiseDetailDialog.java
  21. 10 1
      app/src/main/java/com/android/chmo/ui/dialog/SendGiftDialog.java
  22. 4 1
      app/src/main/java/com/android/chmo/ui/fragment/MineFragment.java
  23. 7 0
      app/src/main/java/com/android/chmo/ui/view/RoundImageView.java
  24. 58 0
      app/src/main/java/com/android/chmo/ui/view/RoundedRelativeLayout.java
  25. 7 0
      app/src/main/res/drawable/bg_btn_exchange.xml
  26. 5 0
      app/src/main/res/drawable/bg_dialog_merchandise_detail.xml
  27. 5 0
      app/src/main/res/drawable/icon_add.xml
  28. 5 0
      app/src/main/res/drawable/icon_minus.xml
  29. 319 0
      app/src/main/res/layout/activity_exchange_detail.xml
  30. 21 0
      app/src/main/res/layout/activity_exchange_history.xml
  31. 128 0
      app/src/main/res/layout/activity_fill_address.xml
  32. 354 0
      app/src/main/res/layout/activity_place_order.xml
  33. 50 0
      app/src/main/res/layout/activity_store.xml
  34. 58 0
      app/src/main/res/layout/dialog_merchandise_detail.xml
  35. 16 0
      app/src/main/res/layout/dialog_send_gift.xml
  36. 109 0
      app/src/main/res/layout/header_store_list.xml
  37. 71 0
      app/src/main/res/layout/item_exchange_history.xml
  38. 86 0
      app/src/main/res/layout/item_merchandise.xml
  39. 36 0
      app/src/main/res/layout/page_mine.xml
  40. 二進制
      app/src/main/res/mipmap-hdpi/icon_dingdandizhi.png
  41. 二進制
      app/src/main/res/mipmap-hdpi/icon_guanbi.png
  42. 二進制
      app/src/main/res/mipmap-hdpi/icon_jianshao.png
  43. 二進制
      app/src/main/res/mipmap-hdpi/icon_jianshao_dis.png
  44. 二進制
      app/src/main/res/mipmap-hdpi/icon_zengjia.png
  45. 二進制
      app/src/main/res/mipmap-hdpi/icon_zengjia_dis.png
  46. 二進制
      app/src/main/res/mipmap-hdpi/img_top_bg.png
  47. 二進制
      app/src/main/res/mipmap-hdpi/into_icon_jifen.png
  48. 二進制
      app/src/main/res/mipmap-hdpi/into_icon_lianxikefu.png
  49. 二進制
      app/src/main/res/mipmap-hdpi/into_icon_qianbao.png
  50. 二進制
      app/src/main/res/mipmap-hdpi/into_icon_shezhi_baise.png
  51. 二進制
      app/src/main/res/mipmap-hdpi/into_icon_shipin.png
  52. 二進制
      app/src/main/res/mipmap-hdpi/jifen_icon_jifen.png
  53. 二進制
      app/src/main/res/mipmap-hdpi/jifen_icon_jilu.png
  54. 二進制
      app/src/main/res/mipmap-xhdpi/icon_dingdandizhi.png
  55. 二進制
      app/src/main/res/mipmap-xhdpi/icon_guanbi.png
  56. 二進制
      app/src/main/res/mipmap-xhdpi/icon_jianshao.png
  57. 二進制
      app/src/main/res/mipmap-xhdpi/icon_jianshao_dis.png
  58. 二進制
      app/src/main/res/mipmap-xhdpi/icon_zengjia.png
  59. 二進制
      app/src/main/res/mipmap-xhdpi/icon_zengjia_dis.png
  60. 二進制
      app/src/main/res/mipmap-xhdpi/img_top_bg.png
  61. 二進制
      app/src/main/res/mipmap-xhdpi/into_icon_jifen.png
  62. 二進制
      app/src/main/res/mipmap-xhdpi/into_icon_qianbao.png
  63. 二進制
      app/src/main/res/mipmap-xhdpi/into_icon_shipin.png
  64. 二進制
      app/src/main/res/mipmap-xhdpi/jifen_icon_jifen.png
  65. 二進制
      app/src/main/res/mipmap-xhdpi/jifen_icon_jilu.png
  66. 二進制
      app/src/main/res/mipmap-xxhdpi/icon_dingdandizhi.png
  67. 二進制
      app/src/main/res/mipmap-xxhdpi/icon_guanbi.png
  68. 二進制
      app/src/main/res/mipmap-xxhdpi/icon_jianshao.png
  69. 二進制
      app/src/main/res/mipmap-xxhdpi/icon_jianshao_dis.png
  70. 二進制
      app/src/main/res/mipmap-xxhdpi/icon_zengjia.png
  71. 二進制
      app/src/main/res/mipmap-xxhdpi/icon_zengjia_dis.png
  72. 二進制
      app/src/main/res/mipmap-xxhdpi/img_top_bg.png
  73. 二進制
      app/src/main/res/mipmap-xxhdpi/into_icon_jifen.png
  74. 二進制
      app/src/main/res/mipmap-xxhdpi/into_icon_qianbao.png
  75. 二進制
      app/src/main/res/mipmap-xxhdpi/into_icon_shenqing.png
  76. 二進制
      app/src/main/res/mipmap-xxhdpi/into_icon_shipin.png
  77. 二進制
      app/src/main/res/mipmap-xxhdpi/into_icon_yuyuedingdan.png
  78. 二進制
      app/src/main/res/mipmap-xxhdpi/jifen_icon_jifen.png
  79. 二進制
      app/src/main/res/mipmap-xxhdpi/jifen_icon_jilu.png
  80. 二進制
      app/src/main/res/mipmap-xxxhdpi/icon_dingdandizhi.png
  81. 二進制
      app/src/main/res/mipmap-xxxhdpi/icon_guanbi.png
  82. 二進制
      app/src/main/res/mipmap-xxxhdpi/icon_jianshao.png
  83. 二進制
      app/src/main/res/mipmap-xxxhdpi/icon_jianshao_dis.png
  84. 二進制
      app/src/main/res/mipmap-xxxhdpi/icon_zengjia.png
  85. 二進制
      app/src/main/res/mipmap-xxxhdpi/icon_zengjia_dis.png
  86. 二進制
      app/src/main/res/mipmap-xxxhdpi/img_top_bg.png
  87. 二進制
      app/src/main/res/mipmap-xxxhdpi/into_icon_jifen.png
  88. 二進制
      app/src/main/res/mipmap-xxxhdpi/into_icon_qianbao.png
  89. 二進制
      app/src/main/res/mipmap-xxxhdpi/into_icon_shipin.png
  90. 二進制
      app/src/main/res/mipmap-xxxhdpi/jifen_icon_jifen.png
  91. 二進制
      app/src/main/res/mipmap-xxxhdpi/jifen_icon_jilu.png

+ 2 - 2
app/build.gradle

@@ -7,8 +7,8 @@ android {
         applicationId "com.android.chmo"
         minSdkVersion 15
         targetSdkVersion 28
-        versionCode 107
-        versionName "1.0.7"
+        versionCode 108
+        versionName "1.0.8"
         ndk {
             abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
         }

+ 6 - 1
app/src/main/AndroidManifest.xml

@@ -466,7 +466,12 @@
         <activity android:name=".ui.activity.WithdrawSuccessActivity" />
         <activity android:name=".ui.activity.WebViewActivity" />
         <activity android:name=".ui.activity.model.FansActivity" />
-        <activity android:name=".ui.activity.activities.SignListActivity"></activity>
+        <activity android:name=".ui.activity.activities.SignListActivity" />
+        <activity android:name=".ui.activity.integral.StoreActivity" />
+        <activity android:name=".ui.activity.integral.ExchangeHistoryActivity" />
+        <activity android:name=".ui.activity.integral.PlaceOrderActivity" />
+        <activity android:name=".ui.activity.integral.FillAddressActivity" />
+        <activity android:name=".ui.activity.integral.ExchangeDetailActivity"></activity>
     </application>
 
 </manifest>

+ 9 - 0
app/src/main/java/com/android/chmo/http/response/ExchangeRes.java

@@ -0,0 +1,9 @@
+package com.android.chmo.http.response;
+
+import com.android.chmo.model.ExchangeInfo;
+
+import java.util.List;
+
+public class ExchangeRes extends Res {
+    public List<ExchangeInfo> data;
+}

+ 9 - 0
app/src/main/java/com/android/chmo/http/response/MerchandiseRes.java

@@ -0,0 +1,9 @@
+package com.android.chmo.http.response;
+
+import com.android.chmo.model.MerchandiseInfo;
+
+import java.util.List;
+
+public class MerchandiseRes extends Res {
+    public List<MerchandiseInfo> data;
+}

+ 4 - 2
app/src/main/java/com/android/chmo/http/response/Res.java

@@ -5,6 +5,8 @@ package com.android.chmo.http.response;
  */
 
 public class Res {
-    public String msg;
-    public String value;
+    public String  msg;
+    public String  value;
+    public boolean success;
+    public String  error;
 }

+ 47 - 0
app/src/main/java/com/android/chmo/http/service/IntegralService.java

@@ -0,0 +1,47 @@
+package com.android.chmo.http.service;
+
+import com.android.chmo.app.ChmoApplication;
+import com.android.chmo.http.HttpApi;
+import com.android.chmo.http.RequestCallback;
+import com.android.chmo.model.LoginUser;
+
+import org.xutils.common.Callback;
+import org.xutils.http.RequestParams;
+
+/**
+ * Created by Administrator on 2018/8/6.
+ */
+
+public class IntegralService {
+    private static RequestParams getRequestParams() {
+        return new RequestParams(HttpApi.BASE_URL + "integral");
+    }
+
+    public static Callback.Cancelable getAllMerchandises(RequestCallback callback) {
+        RequestParams params = getRequestParams();
+        params.addQueryStringParameter("action", "getAllMerchandises");
+        return HttpApi.GET(params, callback);
+    }
+
+    public static Callback.Cancelable getAllExchangeInfo(RequestCallback callback) {
+        RequestParams params = getRequestParams();
+        LoginUser user = ChmoApplication.getApp().getLoginUser();
+        params.addQueryStringParameter("action", "getAllExchangeInfo");
+        params.addQueryStringParameter("memberPK", user.pk);
+        return HttpApi.GET(params, callback);
+    }
+
+    public static Callback.Cancelable saveExchange(int merchandiseId, int amount, String name, String phone, String address, String msg, RequestCallback callback) {
+        RequestParams params = getRequestParams();
+        LoginUser user = ChmoApplication.getApp().getLoginUser();
+        params.addQueryStringParameter("action", "saveExchange");
+        params.addQueryStringParameter("memberPK", user.pk);
+        params.addQueryStringParameter("merchandiseId", String.valueOf(merchandiseId));
+        params.addQueryStringParameter("amount", String.valueOf(amount));
+        params.addQueryStringParameter("name", name);
+        params.addQueryStringParameter("phone", phone);
+        params.addQueryStringParameter("address", address);
+        params.addQueryStringParameter("msg", msg);
+        return HttpApi.GET(params, callback);
+    }
+}

+ 24 - 0
app/src/main/java/com/android/chmo/model/ExchangeInfo.java

@@ -0,0 +1,24 @@
+package com.android.chmo.model;
+
+import java.io.Serializable;
+import java.util.Date;
+
+public class ExchangeInfo implements Serializable {
+    public Integer id;
+    public Integer memberPK;
+    public Integer merchandiseId;
+    public String  merchandiseName;
+    public String  cover;
+    public Integer price;
+    public Integer integral;
+    public Integer amount;
+    public Integer totalIntegral;
+    public String  name;
+    public String  phone;
+    public String  address;
+    public String  msg;
+    public String  logistics;
+    public Long    time;
+    public Integer shipped;
+    public Long    shippedTime;
+}

+ 15 - 0
app/src/main/java/com/android/chmo/model/MerchandiseInfo.java

@@ -0,0 +1,15 @@
+package com.android.chmo.model;
+
+import java.io.Serializable;
+
+public class MerchandiseInfo implements Serializable {
+    public Integer id;
+    public String  name;
+    public Integer integral;
+    public Integer price;
+    public Integer stock;
+    public String  intro;
+    public String  cover;
+    public String  pics;
+    public Integer inStock;
+}

+ 1 - 0
app/src/main/java/com/android/chmo/model/UserInfo.java

@@ -17,5 +17,6 @@ public class UserInfo implements Serializable {
     public String qrcode;
     public String coin_a;
     public String area;
+    public String integral;
 
 }

+ 2 - 0
app/src/main/java/com/android/chmo/ui/activity/WelcomeActivity.java

@@ -1,6 +1,7 @@
 package com.android.chmo.ui.activity;
 
 import android.os.Handler;
+import android.util.Log;
 import android.view.MotionEvent;
 import android.view.View;
 import android.widget.ImageView;
@@ -44,6 +45,7 @@ public class WelcomeActivity extends BaseActivity {
 
     @OnClick(R.id.fl_skip)
     void OnClick() {
+        Log.d("xxx", "zzz");
         if (!start) {
             handler.removeCallbacks(runnable);
             start();

+ 67 - 0
app/src/main/java/com/android/chmo/ui/activity/integral/ExchangeDetailActivity.java

@@ -0,0 +1,67 @@
+package com.android.chmo.ui.activity.integral;
+
+import android.widget.TextView;
+
+import com.android.chmo.R;
+import com.android.chmo.base.BaseActivity;
+import com.android.chmo.http.HttpApi;
+import com.android.chmo.model.ExchangeInfo;
+import com.android.chmo.ui.view.RoundImageView;
+import com.android.chmo.utils.XUtilsImage;
+
+import java.text.SimpleDateFormat;
+import java.util.Locale;
+
+import butterknife.BindView;
+
+public class ExchangeDetailActivity extends BaseActivity {
+    @BindView(R.id.tv_name)
+    TextView       tvName;
+    @BindView(R.id.tv_phone)
+    TextView       tvPhone;
+    @BindView(R.id.tv_address)
+    TextView       tvAddress;
+    @BindView(R.id.iv_cover)
+    RoundImageView ivCover;
+    @BindView(R.id.tv_title)
+    TextView       tvTitle;
+    @BindView(R.id.tv_amount)
+    TextView       tvAmount;
+    @BindView(R.id.tv_integral)
+    TextView       tvIntegral;
+    @BindView(R.id.tv_logistics)
+    TextView       tvLogistics;
+    @BindView(R.id.tv_msg)
+    TextView       tvMsg;
+    @BindView(R.id.tv_time)
+    TextView       tvTime;
+    @BindView(R.id.tv_order_no)
+    TextView       tvOrderNo;
+
+    private ExchangeInfo exchangeInfo;
+
+    @Override
+    protected int getContentResId() {
+        return R.layout.activity_exchange_detail;
+    }
+
+    @Override
+    public void initView() {
+        exchangeInfo = (ExchangeInfo) getIntent().getSerializableExtra("exchangeInfo");
+        if (exchangeInfo == null) {
+            finish();
+        }
+        XUtilsImage.display(ivCover, HttpApi.getImgUrl(exchangeInfo.cover));
+        tvName.setText(exchangeInfo.name);
+        tvPhone.setText(exchangeInfo.phone);
+        tvAddress.setText(exchangeInfo.address);
+        tvTitle.setText(exchangeInfo.merchandiseName);
+        tvAmount.setText(String.valueOf(exchangeInfo.amount));
+        tvIntegral.setText(exchangeInfo.totalIntegral + "积分");
+        tvLogistics.setText(exchangeInfo.logistics);
+        tvOrderNo.setText(String.valueOf(exchangeInfo.id));
+        tvMsg.setText(exchangeInfo.msg);
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-HH-MM hh:mm:ss", Locale.CHINA);
+        tvTime.setText(format.format(exchangeInfo.time));
+    }
+}

+ 65 - 0
app/src/main/java/com/android/chmo/ui/activity/integral/ExchangeHistoryActivity.java

@@ -0,0 +1,65 @@
+package com.android.chmo.ui.activity.integral;
+
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+
+import com.android.chmo.R;
+import com.android.chmo.base.BaseActivity;
+import com.android.chmo.http.RequestCallback;
+import com.android.chmo.http.response.ExchangeRes;
+import com.android.chmo.http.service.IntegralService;
+import com.android.chmo.model.ExchangeInfo;
+import com.android.chmo.ui.adpater.ExchangeHistoryAdapter;
+import com.google.gson.Gson;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+
+public class ExchangeHistoryActivity extends BaseActivity {
+    @BindView(R.id.recycler_view)
+    RecyclerView recyclerView;
+
+    private ExchangeHistoryAdapter adapter;
+    private List<ExchangeInfo>     data;
+
+    @Override
+    protected int getContentResId() {
+        return R.layout.activity_exchange_history;
+    }
+
+    @Override
+    public void initView() {
+        data = new ArrayList<>();
+        adapter = new ExchangeHistoryAdapter(this, data);
+        recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
+        recyclerView.setAdapter(adapter);
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        IntegralService.getAllExchangeInfo(new RequestCallback() {
+            @Override
+            public void onSuccess(String result) {
+                try {
+                    ExchangeRes res = new Gson().fromJson(result, ExchangeRes.class);
+                    if (res.success) {
+                        data.clear();
+                        data.addAll(res.data);
+                        adapter.notifyDataSetChanged();
+                    }
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+
+            }
+
+            @Override
+            public void onFailure(String error) {
+
+            }
+        });
+    }
+}

+ 66 - 0
app/src/main/java/com/android/chmo/ui/activity/integral/FillAddressActivity.java

@@ -0,0 +1,66 @@
+package com.android.chmo.ui.activity.integral;
+
+import android.content.Intent;
+import android.text.TextUtils;
+import android.widget.EditText;
+import android.widget.Toast;
+
+import com.android.chmo.R;
+import com.android.chmo.base.BaseActivity;
+import com.android.chmo.ui.view.TopBar;
+
+import java.util.regex.Pattern;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class FillAddressActivity extends BaseActivity {
+    @BindView(R.id.et_name)
+    EditText etName;
+    @BindView(R.id.et_phone)
+    EditText etPhone;
+    @BindView(R.id.et_address)
+    EditText etAddress;
+
+    String name, phone, address;
+
+    @Override
+    protected int getContentResId() {
+        return R.layout.activity_fill_address;
+    }
+
+    @Override
+    public void initView() {
+        name = getIntent().getStringExtra("name");
+        phone = getIntent().getStringExtra("phone");
+        address = getIntent().getStringExtra("address");
+        etName.setText(name);
+        etPhone.setText(phone);
+        etAddress.setText(address);
+    }
+
+    @OnClick(R.id.btn_confirm)
+    void confirm() {
+        name = etName.getText().toString();
+        phone = etPhone.getText().toString();
+        address = etAddress.getText().toString();
+        if (TextUtils.isEmpty(name)) {
+            Toast.makeText(this, "请输入姓名", Toast.LENGTH_SHORT).show();
+            return;
+        }
+        if (!Pattern.matches("^1[3-9]\\d{9}$", phone)) {
+            Toast.makeText(this, "请输入正确的手机号", Toast.LENGTH_SHORT).show();
+            return;
+        }
+        if (TextUtils.isEmpty(address)) {
+            Toast.makeText(this, "请输入详细地址", Toast.LENGTH_SHORT).show();
+            return;
+        }
+        Intent intent = new Intent();
+        intent.putExtra("name", name);
+        intent.putExtra("phone", phone);
+        intent.putExtra("address", address);
+        setResult(RESULT_OK, intent);
+        finish();
+    }
+}

+ 165 - 0
app/src/main/java/com/android/chmo/ui/activity/integral/PlaceOrderActivity.java

@@ -0,0 +1,165 @@
+package com.android.chmo.ui.activity.integral;
+
+import android.content.Intent;
+import android.support.annotation.Nullable;
+import android.view.View;
+import android.widget.EditText;
+import android.widget.ImageView;
+import android.widget.LinearLayout;
+import android.widget.RelativeLayout;
+import android.widget.TextView;
+import android.widget.Toast;
+
+import com.android.chmo.R;
+import com.android.chmo.base.BaseActivity;
+import com.android.chmo.http.HttpApi;
+import com.android.chmo.http.RequestCallback;
+import com.android.chmo.http.response.Res;
+import com.android.chmo.http.service.IntegralService;
+import com.android.chmo.model.MerchandiseInfo;
+import com.android.chmo.ui.dialog.LoadingDialog;
+import com.android.chmo.ui.view.RoundImageView;
+import com.android.chmo.ui.view.TopBar;
+import com.android.chmo.utils.XUtilsImage;
+import com.google.gson.Gson;
+import com.netease.nim.uikit.common.util.string.StringUtil;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class PlaceOrderActivity extends BaseActivity {
+    @BindView(R.id.tv_name)
+    TextView       tvName;
+    @BindView(R.id.tv_phone)
+    TextView       tvPhone;
+    @BindView(R.id.tv_address)
+    TextView       tvAddress;
+    @BindView(R.id.iv_cover)
+    RoundImageView ivCover;
+    @BindView(R.id.tv_title)
+    TextView       tvTitle;
+    @BindView(R.id.tv_integral)
+    TextView       tvIntegral;
+    @BindView(R.id.btn_minus)
+    ImageView      btnMinus;
+    @BindView(R.id.btn_add)
+    ImageView      btnAdd;
+    @BindView(R.id.tv_amount)
+    TextView       tvAmount;
+    @BindView(R.id.et_msg)
+    EditText       etMsg;
+    @BindView(R.id.rl_empty)
+    RelativeLayout rlEmpty;
+    @BindView(R.id.ll_success)
+    LinearLayout   llSuccess;
+    @BindView(R.id.top_bar)
+    TopBar         topBar;
+
+    private int    amount = 1;
+    private String name, phone, address;
+    private MerchandiseInfo merchandiseInfo;
+
+    @Override
+    protected int getContentResId() {
+        return R.layout.activity_place_order;
+    }
+
+    @Override
+    public void initView() {
+        merchandiseInfo = (MerchandiseInfo) getIntent().getSerializableExtra("merchandiseInfo");
+        if (merchandiseInfo == null) {
+            finish();
+        }
+        XUtilsImage.display(ivCover, HttpApi.getImgUrl(merchandiseInfo.cover));
+        tvTitle.setText(merchandiseInfo.name);
+        tvIntegral.setText(merchandiseInfo.integral + "积分");
+    }
+
+    @OnClick(R.id.btn_back)
+    void back() {
+        finish();
+    }
+
+    @OnClick(R.id.btn_minus)
+    void minusAmount(View v) {
+        if (amount > 1) {
+            amount--;
+        }
+        setAmount();
+    }
+
+    @OnClick(R.id.btn_add)
+    void addAmount(View v) {
+        if (amount < 99) {
+            amount++;
+        }
+        setAmount();
+    }
+
+    @OnClick(R.id.fl_address)
+    void editAddress() {
+        Intent intent = new Intent(this, FillAddressActivity.class);
+        intent.putExtra("name", name);
+        intent.putExtra("phone", phone);
+        intent.putExtra("address", address);
+        startActivityForResult(intent, 0);
+    }
+
+    void setAmount() {
+        if (amount == 1) {
+            btnMinus.setEnabled(false);
+            btnAdd.setEnabled(true);
+        } else if (amount == 99) {
+            btnMinus.setEnabled(true);
+            btnAdd.setEnabled(false);
+        } else {
+            btnMinus.setEnabled(true);
+            btnAdd.setEnabled(true);
+        }
+        tvAmount.setText(String.valueOf(amount));
+        tvIntegral.setText(amount * merchandiseInfo.integral + "积分");
+
+    }
+
+    @OnClick(R.id.btn_confirm)
+    void confirm() {
+        if (StringUtil.isEmpty(address)) {
+            Toast.makeText(this, "请填写地址", Toast.LENGTH_SHORT).show();
+            return;
+        }
+        LoadingDialog loadingDialog = new LoadingDialog(this);
+        loadingDialog.show();
+        IntegralService.saveExchange(merchandiseInfo.id, amount, name, phone, address, etMsg.getText().toString(), new RequestCallback() {
+            @Override
+            public void onSuccess(String result) {
+                loadingDialog.dismiss();
+                Res res = new Gson().fromJson(result, Res.class);
+                if (res.success) {
+                    llSuccess.setVisibility(View.VISIBLE);
+                } else {
+                    topBar.setTitle("兑换成功");
+                    Toast.makeText(PlaceOrderActivity.this, res.error, Toast.LENGTH_SHORT).show();
+                }
+            }
+
+            @Override
+            public void onFailure(String error) {
+                loadingDialog.dismiss();
+                Toast.makeText(PlaceOrderActivity.this, "兑换失败,请稍后再试", Toast.LENGTH_SHORT).show();
+            }
+        });
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+        if (resultCode == RESULT_OK) {
+            name = data.getStringExtra("name");
+            phone = data.getStringExtra("phone");
+            address = data.getStringExtra("address");
+            rlEmpty.setVisibility(View.GONE);
+            tvName.setText(name);
+            tvPhone.setText(phone);
+            tvAddress.setText(address);
+        }
+    }
+}

+ 112 - 0
app/src/main/java/com/android/chmo/ui/activity/integral/StoreActivity.java

@@ -0,0 +1,112 @@
+package com.android.chmo.ui.activity.integral;
+
+import android.content.Intent;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.util.TypedValue;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
+import android.widget.TextView;
+
+import com.android.chmo.R;
+import com.android.chmo.app.ChmoApplication;
+import com.android.chmo.base.BaseActivity;
+import com.android.chmo.http.RequestCallback;
+import com.android.chmo.http.response.LoginRes;
+import com.android.chmo.http.response.MerchandiseRes;
+import com.android.chmo.http.service.IntegralService;
+import com.android.chmo.http.service.UserService;
+import com.android.chmo.model.MerchandiseInfo;
+import com.android.chmo.ui.adpater.MerchandiseAdapter;
+import com.google.gson.Gson;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.OnClick;
+
+public class StoreActivity extends BaseActivity {
+    @BindView(R.id.recycler_view)
+    RecyclerView recyclerView;
+
+    private MerchandiseAdapter      adapter;
+    private View                    headerView;
+    private TextView                tvIntegral;
+    private List<MerchandiseInfo>   data;
+
+    @Override
+    protected int getContentResId() {
+        return R.layout.activity_store;
+    }
+
+    @Override
+    public void initView() {
+        data = new ArrayList<>();
+        adapter = new MerchandiseAdapter(this, data);
+
+        recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false));
+        headerView = LayoutInflater.from(this).inflate(R.layout.header_store_list, null, false);
+        headerView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 145, getResources().getDisplayMetrics())));
+        tvIntegral = headerView.findViewById(R.id.tv_integral);
+        headerView.findViewById(R.id.ll_history).setOnClickListener(v -> {
+            if (!ChmoApplication.isLogin()) {
+                ChmoApplication.showLoginDialog(StoreActivity.this);
+                return;
+            }
+            Intent intent = new Intent(StoreActivity.this, ExchangeHistoryActivity.class);
+            startActivity(intent);
+        });
+        adapter.addHeaderView(headerView);
+        recyclerView.setAdapter(adapter);
+    }
+
+    @Override
+    protected int getStatusBarStyle() {
+        return STATUS_BAR_STYLE_LIGHT_CONTENT;
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        IntegralService.getAllMerchandises(new RequestCallback() {
+            @Override
+            public void onSuccess(String result) {
+                MerchandiseRes res = new Gson().fromJson(result, MerchandiseRes.class);
+                if (res.success) {
+                    data.clear();
+                    data.addAll(res.data);
+                    adapter.notifyDataSetChanged();
+                }
+            }
+
+            @Override
+            public void onFailure(String error) {
+
+            }
+        });
+        if (ChmoApplication.isLogin()) {
+            UserService.getUser(new RequestCallback() {
+                @Override
+                public void onSuccess(String result) {
+                    LoginRes res = new Gson().fromJson(result, LoginRes.class);
+                    if (res.data != null) {
+                        tvIntegral.setText(res.data.integral);
+                    }
+                }
+
+                @Override
+                public void onFailure(String error) {
+                }
+            });
+        }
+    }
+
+    @OnClick(R.id.btn_back)
+    void back() {
+        finish();
+    }
+
+}

+ 2 - 2
app/src/main/java/com/android/chmo/ui/activity/model/ModelDetailActivity.java

@@ -666,7 +666,7 @@ public class ModelDetailActivity extends BaseActivity implements ShareDialog.OnS
 
     @Override
     public void onShareWechatSession() {
-        WXWebpageObject webpageObject = new WXWebpageObject(HttpApi.BASE_URL + "modelCard.jsp??modelpk=" + this.model.modelpk + "&code=" + ChmoApplication.getApp().getLoginUser().qrcode);
+        WXWebpageObject webpageObject = new WXWebpageObject(HttpApi.BASE_URL + "modelCard.jsp?modelpk=" + this.model.modelpk + "&code=" + ChmoApplication.getApp().getLoginUser().qrcode);
         WXMediaMessage message = new WXMediaMessage();
         message.mediaObject = webpageObject;
         message.title = "千模通告";
@@ -681,7 +681,7 @@ public class ModelDetailActivity extends BaseActivity implements ShareDialog.OnS
 
     @Override
     public void onShareWechatTimeline() {
-        WXWebpageObject webpageObject = new WXWebpageObject(HttpApi.BASE_URL + "modelCard.jsp??modelpk=" + this.model.modelpk + "&code=" + ChmoApplication.getApp().getLoginUser().qrcode);
+        WXWebpageObject webpageObject = new WXWebpageObject(HttpApi.BASE_URL + "modelCard.jsp?modelpk=" + this.model.modelpk + "&code=" + ChmoApplication.getApp().getLoginUser().qrcode);
         WXMediaMessage message = new WXMediaMessage();
         message.mediaObject = webpageObject;
         message.title = this.model.name + ",千模平台优秀模特,马上跟她视频认识一下吧。";

+ 64 - 0
app/src/main/java/com/android/chmo/ui/adpater/BaseAdapter.java

@@ -0,0 +1,64 @@
+package com.android.chmo.ui.adpater;
+
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.View;
+import android.view.ViewGroup;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public abstract class BaseAdapter<VH extends RecyclerView.ViewHolder> extends RecyclerView.Adapter {
+    private List<View> headerViews;
+    private List<View> footerViews;
+
+    public BaseAdapter() {
+        headerViews = new ArrayList<>();
+        footerViews = new ArrayList<>();
+    }
+
+    public void addHeaderView(View view) {
+        headerViews.add(view);
+    }
+
+    @NonNull
+    @Override
+    public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
+        if (i < headerViews.size()) {
+            return new HeaderFooterHolder(headerViews.get(i));
+        } else if (i < (headerViews.size() + getDataCount())) {
+            return getViewHolder(viewGroup, i - headerViews.size());
+        } else {
+            return new HeaderFooterHolder(footerViews.get(i - headerViews.size() - getDataCount()));
+        }
+    }
+
+    @Override
+    public void onBindViewHolder(@NonNull RecyclerView.ViewHolder viewHolder, int i) {
+        if (i >= headerViews.size() && i < (headerViews.size() + getDataCount())) {
+            updateViewHolder((VH) viewHolder, i - headerViews.size());
+        }
+    }
+
+    @Override
+    public int getItemCount() {
+        return getDataCount() + headerViews.size() + footerViews.size();
+    }
+
+    @Override
+    public int getItemViewType(int position) {
+        return position;
+    }
+
+    protected abstract int getDataCount();
+
+    protected abstract VH getViewHolder(@NonNull ViewGroup viewGroup, int position);
+
+    protected abstract void updateViewHolder(@NonNull VH holder, int position);
+
+    class HeaderFooterHolder extends RecyclerView.ViewHolder {
+        public HeaderFooterHolder(@NonNull View itemView) {
+            super(itemView);
+        }
+    }
+}

+ 77 - 0
app/src/main/java/com/android/chmo/ui/adpater/ExchangeHistoryAdapter.java

@@ -0,0 +1,77 @@
+package com.android.chmo.ui.adpater;
+
+import android.content.Context;
+import android.content.Intent;
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.android.chmo.R;
+import com.android.chmo.http.HttpApi;
+import com.android.chmo.model.ExchangeInfo;
+import com.android.chmo.ui.activity.integral.ExchangeDetailActivity;
+import com.android.chmo.ui.activity.integral.ExchangeHistoryActivity;
+import com.android.chmo.ui.view.RoundImageView;
+import com.android.chmo.utils.XUtilsImage;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.Locale;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+public class ExchangeHistoryAdapter extends BaseAdapter<ExchangeHistoryAdapter.ExchangeHistoryHolder> {
+    private Context            context;
+    private List<ExchangeInfo> data;
+
+    public ExchangeHistoryAdapter(Context context, List<ExchangeInfo> data) {
+        this.context = context;
+        this.data = data;
+    }
+
+    @Override
+    protected int getDataCount() {
+        return data.size();
+    }
+
+    @Override
+    protected ExchangeHistoryHolder getViewHolder(@NonNull ViewGroup viewGroup, int position) {
+        return new ExchangeHistoryHolder(LayoutInflater.from(context).inflate(R.layout.item_exchange_history, viewGroup, false));
+    }
+
+    @Override
+    protected void updateViewHolder(@NonNull ExchangeHistoryHolder holder, int position) {
+        ExchangeInfo exchangeInfo = data.get(position);
+        XUtilsImage.display(holder.ivCover, HttpApi.getImgUrl(exchangeInfo.cover));
+        holder.tvTitle.setText(exchangeInfo.merchandiseName);
+        holder.tvIntegral.setText(exchangeInfo.totalIntegral + "积分");
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-HH-MM hh:mm:ss", Locale.CHINA);
+        holder.tvTime.setText(format.format(exchangeInfo.time));
+        holder.itemView.setOnClickListener(v -> {
+            Intent intent = new Intent(context, ExchangeDetailActivity.class);
+            intent.putExtra("exchangeInfo", exchangeInfo);
+            context.startActivity(intent);
+        });
+    }
+
+    class ExchangeHistoryHolder extends RecyclerView.ViewHolder {
+        @BindView(R.id.iv_cover)
+        RoundImageView ivCover;
+        @BindView(R.id.tv_title)
+        TextView       tvTitle;
+        @BindView(R.id.tv_integral)
+        TextView       tvIntegral;
+        @BindView(R.id.tv_time)
+        TextView       tvTime;
+
+        public ExchangeHistoryHolder(@NonNull View itemView) {
+            super(itemView);
+            ButterKnife.bind(this, itemView);
+        }
+    }
+}

+ 92 - 0
app/src/main/java/com/android/chmo/ui/adpater/MerchandiseAdapter.java

@@ -0,0 +1,92 @@
+package com.android.chmo.ui.adpater;
+
+import android.content.Context;
+import android.content.Intent;
+import android.graphics.Paint;
+import android.support.annotation.NonNull;
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.Button;
+import android.widget.TextView;
+
+import com.android.chmo.R;
+import com.android.chmo.app.ChmoApplication;
+import com.android.chmo.http.HttpApi;
+import com.android.chmo.model.MerchandiseInfo;
+import com.android.chmo.ui.activity.integral.PlaceOrderActivity;
+import com.android.chmo.ui.activity.integral.StoreActivity;
+import com.android.chmo.ui.dialog.MerchandiseDetailDialog;
+import com.android.chmo.ui.view.RoundImageView;
+import com.android.chmo.utils.XUtilsImage;
+
+import java.util.List;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+
+public class MerchandiseAdapter extends BaseAdapter<MerchandiseAdapter.MerchandiseHolder> {
+    private List<MerchandiseInfo> data;
+    private Context               context;
+
+    public MerchandiseAdapter(Context context, List<MerchandiseInfo> data) {
+        this.context = context;
+        this.data = data;
+    }
+
+    @Override
+    protected int getDataCount() {
+        return data.size();
+    }
+
+    @Override
+    protected MerchandiseHolder getViewHolder(@NonNull ViewGroup viewGroup, int position) {
+        return new MerchandiseHolder(LayoutInflater.from(context).inflate(R.layout.item_merchandise, viewGroup, false));
+    }
+
+    @Override
+    protected void updateViewHolder(@NonNull MerchandiseHolder holder, int position) {
+        MerchandiseInfo merchandiseInfo = data.get(position);
+        XUtilsImage.display(holder.ivCover, HttpApi.getImgUrl(merchandiseInfo.cover));
+        holder.tvTitle.setText(merchandiseInfo.name);
+        holder.tvIntegral.setText(merchandiseInfo.integral + "积分");
+        holder.tvStock.setText("剩余" + merchandiseInfo.stock + "件");
+        holder.tvPrice.setText("¥" + merchandiseInfo.price);
+        holder.btnExchange.setOnClickListener(v -> {
+            if (!ChmoApplication.isLogin()) {
+                ChmoApplication.showLoginDialog(context);
+                return;
+            }
+            Intent intent = new Intent(context, PlaceOrderActivity.class);
+            intent.putExtra("merchandiseInfo", merchandiseInfo);
+            context.startActivity(intent);
+        });
+        holder.itemView.setOnClickListener(v -> {
+            MerchandiseDetailDialog detailDialog = new MerchandiseDetailDialog(context);
+            detailDialog.setMerchandiseInfo(merchandiseInfo);
+            detailDialog.show();
+        });
+    }
+
+    class MerchandiseHolder extends RecyclerView.ViewHolder {
+        @BindView(R.id.iv_cover)
+        RoundImageView ivCover;
+        @BindView(R.id.tv_title)
+        TextView       tvTitle;
+        @BindView(R.id.tv_stock)
+        TextView       tvStock;
+        @BindView(R.id.tv_integral)
+        TextView       tvIntegral;
+        @BindView(R.id.tv_price)
+        TextView       tvPrice;
+        @BindView(R.id.btn_exchange)
+        Button         btnExchange;
+
+        public MerchandiseHolder(@NonNull View itemView) {
+            super(itemView);
+            ButterKnife.bind(this, itemView);
+            tvPrice.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG | Paint.ANTI_ALIAS_FLAG);
+        }
+    }
+}

+ 70 - 0
app/src/main/java/com/android/chmo/ui/dialog/MerchandiseDetailDialog.java

@@ -0,0 +1,70 @@
+package com.android.chmo.ui.dialog;
+
+import android.app.Dialog;
+import android.content.Context;
+import android.os.Bundle;
+import android.support.annotation.NonNull;
+import android.util.TypedValue;
+import android.view.Gravity;
+import android.view.Window;
+import android.view.WindowManager;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.android.chmo.R;
+import com.android.chmo.http.HttpApi;
+import com.android.chmo.model.MerchandiseInfo;
+import com.android.chmo.utils.XUtilsImage;
+
+import java.util.Arrays;
+
+import butterknife.BindView;
+import butterknife.ButterKnife;
+import butterknife.OnClick;
+import cn.bingoogolapple.bgabanner.BGABanner;
+
+public class MerchandiseDetailDialog extends Dialog {
+    @BindView(R.id.banner)
+    BGABanner banner;
+    @BindView(R.id.tv_intro)
+    TextView  tvIntro;
+
+    private MerchandiseInfo merchandiseInfo;
+
+    public void setMerchandiseInfo(MerchandiseInfo merchandiseInfo) {
+        this.merchandiseInfo = merchandiseInfo;
+    }
+
+    public MerchandiseDetailDialog(@NonNull Context context) {
+        super(context, R.style.DialogStyle);
+        setContentView(R.layout.dialog_merchandise_detail);
+        ButterKnife.bind(this);
+        Window window = getWindow();
+        WindowManager.LayoutParams wlp = window.getAttributes();
+        wlp.gravity = Gravity.CENTER;
+        window.setAttributes(wlp);
+        window.setWindowAnimations(R.style.DialogAnimation);
+        float screenWidthDp = getContext().getResources().getDisplayMetrics().widthPixels / getContext().getResources().getDisplayMetrics().density;
+        int width = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, screenWidthDp - 40, getContext().getResources().getDisplayMetrics());
+        window.setLayout(width, WindowManager.LayoutParams.WRAP_CONTENT);
+
+        banner.setAdapter((BGABanner.Adapter<ImageView, String>) (banner, itemView, model, position) -> {
+            XUtilsImage.display(itemView, HttpApi.getImgUrl(model));
+        });
+    }
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        if (merchandiseInfo != null) {
+            String[] pics = merchandiseInfo.pics.split(";");
+            banner.setData(Arrays.asList(pics), null);
+            tvIntro.setText(merchandiseInfo.intro);
+        }
+    }
+
+    @OnClick(R.id.btn_close)
+    void clickClose() {
+        dismiss();
+    }
+}

+ 10 - 1
app/src/main/java/com/android/chmo/ui/dialog/SendGiftDialog.java

@@ -1,6 +1,5 @@
 package com.android.chmo.ui.dialog;
 
-import android.app.Activity;
 import android.app.Dialog;
 import android.content.Context;
 import android.content.Intent;
@@ -20,6 +19,7 @@ import com.android.chmo.http.response.Res;
 import com.android.chmo.http.service.PayService;
 import com.android.chmo.http.service.UserService;
 import com.android.chmo.model.LoginUser;
+import com.android.chmo.ui.activity.integral.StoreActivity;
 import com.android.chmo.ui.activity.me.RechargeActivity;
 import com.android.chmo.utils.LoginUtils;
 import com.google.gson.Gson;
@@ -38,6 +38,8 @@ public class SendGiftDialog extends Dialog {
 
     @BindView(R.id.tv_balance)
     TextView tvBalance;
+    @BindView(R.id.tv_store)
+    TextView tvStore;
 
     private SendGiftDialog(@NonNull Context context, String modelpk, String activitypk) {
         super(context, R.style.DialogStyle);
@@ -61,6 +63,7 @@ public class SendGiftDialog extends Dialog {
         window.setAttributes(wlp);
         window.setWindowAnimations(R.style.DialogAnimation);
         window.setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.WRAP_CONTENT);
+        tvStore.setText("您为选手送\"礼\"助威,我为您送\"茶\"还礼!");
         getData();
     }
 
@@ -149,6 +152,12 @@ public class SendGiftDialog extends Dialog {
         }
     }
 
+    @OnClick(R.id.tv_store)
+    void onClickStore() {
+        Intent intent = new Intent(getContext(), StoreActivity.class);
+        getContext().startActivity(intent);
+    }
+
     private void goRecharge() {
         Intent intent = new Intent(getContext(), RechargeActivity.class);
         getContext().startActivity(intent);

+ 4 - 1
app/src/main/java/com/android/chmo/ui/fragment/MineFragment.java

@@ -15,6 +15,7 @@ import com.android.chmo.http.service.UserService;
 import com.android.chmo.im.IMManager;
 import com.android.chmo.model.LoginUser;
 import com.android.chmo.ui.activity.MyWalletActivity;
+import com.android.chmo.ui.activity.integral.StoreActivity;
 import com.android.chmo.ui.activity.me.AboutActivity;
 import com.android.chmo.ui.activity.me.RechargeActivity;
 import com.android.chmo.ui.activity.me.SettingsActivity;
@@ -91,10 +92,12 @@ public class MineFragment extends BaseFragment {
 
     @OnClick({R.id.ll_order, R.id.btn_promote, R.id.ll_jump,
             R.id.ll_wallet, R.id.ll_video_order, R.id.ll_about,
-            R.id.iv_settings, R.id.iv_avatar})
+            R.id.iv_settings, R.id.iv_avatar,R.id.ll_integral})
     void onClick(View v) {
         if (v.getId() == R.id.ll_about) {
             openPage(AboutActivity.class);
+        } else if (v.getId() == R.id.ll_integral) {
+            openPage(StoreActivity.class);
         } else {
             if (!ChmoApplication.isLogin()) {
                 ChmoApplication.showLoginDialog(this.getActivity());

+ 7 - 0
app/src/main/java/com/android/chmo/ui/view/RoundImageView.java

@@ -49,6 +49,13 @@ public class RoundImageView extends android.support.v7.widget.AppCompatImageView
         borderPaint.setAntiAlias(true);
     }
 
+    public void setCornerRadius(int topLeft, int topRight, int bottomRight, int bottomLeft) {
+        radiusTopLeft = topLeft;
+        radiusTopRight = topRight;
+        radiusBottomRight = bottomRight;
+        radiusBottomLeft = bottomLeft;
+    }
+
     @Override
     protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
         super.onLayout(changed, left, top, right, bottom);

+ 58 - 0
app/src/main/java/com/android/chmo/ui/view/RoundedRelativeLayout.java

@@ -0,0 +1,58 @@
+package com.android.chmo.ui.view;
+
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Path;
+import android.graphics.RectF;
+import android.util.AttributeSet;
+import android.util.TypedValue;
+import android.widget.RelativeLayout;
+
+public class RoundedRelativeLayout extends RelativeLayout {
+    private RectF rectF;
+    private Path  path         = new Path();
+    private float cornerRadius = 15;
+
+    public RoundedRelativeLayout(Context context) {
+        this(context, null);
+    }
+
+    public RoundedRelativeLayout(Context context, AttributeSet attrs) {
+        this(context, attrs, 0);
+    }
+
+    public RoundedRelativeLayout(Context context, AttributeSet attrs, int defStyleAttr) {
+        super(context, attrs, defStyleAttr);
+        cornerRadius = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 12, context.getResources().getDisplayMetrics());
+    }
+
+    @Override
+    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
+        super.onSizeChanged(w, h, oldw, oldh);
+        rectF = new RectF(0, 0, w, h);
+        resetPath();
+    }
+
+    @Override
+    public void draw(Canvas canvas) {
+        int save = canvas.save();
+        canvas.clipPath(path);
+        super.draw(canvas);
+        canvas.restoreToCount(save);
+    }
+
+    @Override
+    protected void dispatchDraw(Canvas canvas) {
+        int save = canvas.save();
+        canvas.clipPath(path);
+        super.dispatchDraw(canvas);
+        canvas.restoreToCount(save);
+    }
+
+    private void resetPath() {
+        path.reset();
+        path.addRoundRect(rectF, cornerRadius, cornerRadius, Path.Direction.CW);
+        path.addRoundRect(rectF, new float[]{cornerRadius, cornerRadius, cornerRadius, cornerRadius, 0, 0, 0, 0}, Path.Direction.CW);
+        path.close();
+    }
+}

+ 7 - 0
app/src/main/res/drawable/bg_btn_exchange.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <corners android:radius="13dp" />
+    <stroke
+        android:width="1dp"
+        android:color="@color/pink" />
+</shape>

+ 5 - 0
app/src/main/res/drawable/bg_dialog_merchandise_detail.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/bg" />
+    <corners android:radius="12dp" />
+</shape>

+ 5 - 0
app/src/main/res/drawable/icon_add.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@mipmap/icon_zengjia_dis" android:state_enabled="false" />
+    <item android:drawable="@mipmap/icon_zengjia" />
+</selector>

+ 5 - 0
app/src/main/res/drawable/icon_minus.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@mipmap/icon_jianshao_dis" android:state_enabled="false" />
+    <item android:drawable="@mipmap/icon_jianshao" />
+</selector>

+ 319 - 0
app/src/main/res/layout/activity_exchange_detail.xml

@@ -0,0 +1,319 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout 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="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    tools:context=".ui.activity.integral.ExchangeDetailActivity">
+
+    <com.android.chmo.ui.view.TopBar
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:topTitle="兑换详情" />
+
+    <ScrollView
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:orientation="vertical"
+            android:paddingLeft="20dp"
+            android:paddingRight="20dp">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="104dp"
+                android:layout_marginTop="10dp"
+                android:background="@drawable/bg_settings_cell"
+                android:orientation="vertical">
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="10dp"
+                    android:layout_marginTop="20dp"
+                    android:layout_marginRight="15dp"
+                    android:gravity="center">
+
+                    <ImageView
+                        android:layout_width="20dp"
+                        android:layout_height="20dp"
+                        android:src="@mipmap/icon_dingdandizhi"
+                        app:layout_constraintLeft_toLeftOf="parent"
+                        app:layout_constraintTop_toTopOf="parent" />
+
+                    <TextView
+                        android:id="@+id/tv_name"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:text="粉条"
+                        android:textColor="#ff333333"
+                        android:textSize="14sp"
+                        android:textStyle="bold" />
+
+                    <TextView
+                        android:id="@+id/tv_phone"
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="20dp"
+                        android:layout_weight="1"
+                        android:text="12925622522"
+                        android:textColor="#ff333333"
+                        android:textSize="14sp"
+                        android:textStyle="bold" />
+                </LinearLayout>
+
+                <TextView
+                    android:id="@+id/tv_address"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="42dp"
+                    android:layout_marginTop="4dp"
+                    android:layout_marginRight="34dp"
+                    android:ellipsize="end"
+                    android:lines="3"
+                    android:text="南京市什么区什么花园1号楼2单元302室2单元302室2单元302室"
+                    android:textColor="#ff333333"
+                    android:textSize="14sp" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="10dp"
+                android:background="@drawable/bg_settings_cell"
+                android:orientation="vertical"
+                android:paddingLeft="15dp"
+                android:paddingRight="15dp">
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal"
+                    android:paddingTop="15dp"
+                    android:paddingRight="15dp">
+
+                    <com.android.chmo.ui.view.RoundImageView
+                        android:id="@+id/iv_cover"
+                        android:layout_width="80dp"
+                        android:layout_height="80dp"
+                        android:src="@mipmap/def_img2"
+                        app:radius_top_right="4dp" />
+
+                    <TextView
+                        android:id="@+id/tv_title"
+                        android:layout_width="match_parent"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="10dp"
+                        android:lines="3"
+                        android:text="兑换物品标题介绍兑换物品标题介绍兑换物品标题"
+                        android:textColor="#ff000000"
+                        android:textSize="14sp"
+                        android:textStyle="bold" />
+                </LinearLayout>
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="44dp"
+                    android:layout_marginTop="5dp"
+                    android:gravity="center">
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:text="订单价格"
+                        android:textColor="#ff333333"
+                        android:textSize="13sp" />
+
+                    <TextView
+                        android:id="@+id/tv_integral"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="40积分"
+                        android:textColor="@color/pink"
+                        android:textSize="14sp"
+                        android:textStyle="bold" />
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/divider" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="44dp"
+                    android:gravity="center">
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:text="数量"
+                        android:textColor="#ff333333"
+                        android:textSize="13sp" />
+
+                    <TextView
+                        android:id="@+id/tv_amount"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="2"
+                        android:textColor="#ff333333"
+                        android:textSize="14sp" />
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/divider" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="44dp"
+                    android:gravity="center">
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:text="配送方式"
+                        android:textColor="#ff333333"
+                        android:textSize="13sp" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="包邮"
+                        android:textColor="#ff333333"
+                        android:textSize="14sp" />
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/divider" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="44dp"
+                    android:gravity="center">
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:text="留言"
+                        android:textColor="#ff333333"
+                        android:textSize="13sp" />
+
+                    <TextView
+                        android:id="@+id/tv_msg"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textColor="#ff333333"
+                        android:textSize="14sp" />
+                </LinearLayout>
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="10dp"
+                android:background="@drawable/bg_cell"
+                android:orientation="vertical"
+                android:paddingLeft="15dp"
+                android:paddingRight="15dp">
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="44dp"
+                    android:gravity="center">
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:text="物流单号"
+                        android:textColor="#ff333333"
+                        android:textSize="13sp" />
+
+                    <TextView
+                        android:id="@+id/tv_logistics"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:textColor="#ff333333"
+                        android:textSize="14sp" />
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/divider" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="44dp"
+                    android:gravity="center">
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:text="订单编号"
+                        android:textColor="#ff333333"
+                        android:textSize="13sp" />
+
+                    <TextView
+                        android:id="@+id/tv_order_no"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="111333"
+                        android:textColor="#ff333333"
+                        android:textSize="14sp" />
+                </LinearLayout>
+
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:background="@color/divider" />
+
+                <LinearLayout
+                    android:layout_width="match_parent"
+                    android:layout_height="44dp"
+                    android:gravity="center">
+
+                    <TextView
+                        android:layout_width="0dp"
+                        android:layout_height="wrap_content"
+                        android:layout_weight="1"
+                        android:text="下单时间"
+                        android:textColor="#ff333333"
+                        android:textSize="13sp" />
+
+                    <TextView
+                        android:id="@+id/tv_time"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="2018-12-19 16:23:56"
+                        android:textColor="#ff333333"
+                        android:textSize="14sp" />
+                </LinearLayout>
+            </LinearLayout>
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_gravity="center"
+                android:layout_marginTop="26dp"
+                android:layout_marginBottom="10dp"
+                android:text="客服热线:17768144625"
+                android:textColor="#ff4d4d4d"
+                android:textSize="12sp" />
+        </LinearLayout>
+    </ScrollView>
+</LinearLayout>

+ 21 - 0
app/src/main/res/layout/activity_exchange_history.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout 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="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    tools:context=".ui.activity.integral.ExchangeHistoryActivity">
+
+    <com.android.chmo.ui.view.TopBar
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:topTitle="兑换记录" />
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/recycler_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:clipToPadding="false"
+        android:paddingBottom="10dp" />
+</LinearLayout>

+ 128 - 0
app/src/main/res/layout/activity_fill_address.xml

@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout 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="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    tools:context=".ui.activity.integral.FillAddressActivity">
+
+    <com.android.chmo.ui.view.TopBar
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:topTitle="修改地址" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="20dp"
+        android:layout_marginTop="10dp"
+        android:layout_marginRight="20dp"
+        android:background="@drawable/bg_settings_cell"
+        android:orientation="vertical"
+        android:paddingLeft="15dp"
+        android:paddingRight="15dp">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="60dp"
+            android:gravity="center"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="姓名"
+                android:textColor="@color/black"
+                android:textSize="14sp"
+                android:textStyle="bold" />
+
+            <EditText
+                android:id="@+id/et_name"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:background="@color/transparent"
+                android:gravity="center|right"
+                android:hint="请输入你的姓名"
+                android:textColor="@color/black"
+                android:textSize="14sp" />
+        </LinearLayout>
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1dp"
+            android:background="@color/divider" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="60dp"
+            android:gravity="center"
+            android:orientation="horizontal">
+
+            <TextView
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:text="手机号"
+                android:textColor="@color/black"
+                android:textSize="14sp"
+                android:textStyle="bold" />
+
+            <EditText
+                android:id="@+id/et_phone"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:background="@color/transparent"
+                android:gravity="center|right"
+                android:hint="请输入手机号"
+                android:inputType="phone"
+                android:textColor="@color/black"
+                android:textSize="14sp" />
+        </LinearLayout>
+    </LinearLayout>
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="80dp"
+        android:layout_marginLeft="20dp"
+        android:layout_marginTop="10dp"
+        android:layout_marginRight="20dp"
+        android:background="@drawable/bg_settings_cell">
+
+        <TextView
+            android:id="@+id/tv_address"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="15dp"
+            android:layout_marginTop="20dp"
+            android:text="详细地址"
+            android:textColor="@color/black"
+            android:textSize="14sp"
+            android:textStyle="bold" />
+
+        <EditText
+            android:id="@+id/et_address"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_alignTop="@id/tv_address"
+            android:layout_alignParentRight="true"
+            android:layout_alignParentBottom="true"
+            android:layout_marginLeft="20dp"
+            android:layout_marginRight="15dp"
+            android:layout_toRightOf="@id/tv_address"
+            android:background="@color/transparent"
+            android:gravity="top|right"
+            android:hint="请输入你的详细地址"
+            android:textSize="14sp" />
+    </RelativeLayout>
+
+    <Button
+        android:id="@+id/btn_confirm"
+        style="@style/largeBtn"
+        android:layout_marginLeft="20dp"
+        android:layout_marginTop="30dp"
+        android:layout_marginRight="20dp"
+        android:text="确认地址" />
+
+</LinearLayout>

+ 354 - 0
app/src/main/res/layout/activity_place_order.xml

@@ -0,0 +1,354 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout 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="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical"
+    tools:context=".ui.activity.integral.PlaceOrderActivity">
+
+    <com.android.chmo.ui.view.TopBar
+        android:id="@+id/top_bar"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        app:topTitle="确认订单" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:orientation="vertical"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintTop_toBottomOf="@id/top_bar">
+
+        <FrameLayout
+            android:id="@+id/fl_address"
+            android:layout_width="match_parent"
+            android:layout_height="104dp"
+            android:layout_marginLeft="20dp"
+            android:layout_marginTop="10dp"
+            android:layout_marginRight="20dp"
+            android:background="@drawable/bg_settings_cell">
+
+            <android.support.constraint.ConstraintLayout
+                android:layout_width="match_parent"
+                android:layout_height="match_parent">
+
+                <ImageView
+                    android:id="@+id/icon_loc"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_alignParentRight="true"
+                    android:layout_centerVertical="true"
+                    android:layout_marginLeft="10dp"
+                    android:layout_marginTop="20dp"
+                    android:layout_marginRight="4dp"
+                    android:src="@mipmap/icon_dingdandizhi"
+                    app:layout_constraintLeft_toLeftOf="parent"
+                    app:layout_constraintTop_toTopOf="parent" />
+
+                <TextView
+                    android:id="@+id/tv_name"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="10dp"
+                    android:text="粉条"
+                    android:textColor="#ff333333"
+                    android:textSize="14sp"
+                    android:textStyle="bold"
+                    app:layout_constraintBottom_toBottomOf="@id/icon_loc"
+                    app:layout_constraintLeft_toRightOf="@id/icon_loc"
+                    app:layout_constraintTop_toTopOf="@id/icon_loc" />
+
+                <TextView
+                    android:id="@+id/tv_phone"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="20dp"
+                    android:text="15077777777"
+                    android:textColor="#ff333333"
+                    android:textSize="14sp"
+                    android:textStyle="bold"
+                    app:layout_constraintBottom_toBottomOf="@id/icon_loc"
+                    app:layout_constraintLeft_toRightOf="@id/tv_name"
+                    app:layout_constraintTop_toTopOf="@id/icon_loc" />
+
+                <TextView
+                    android:id="@+id/tv_address"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="2dp"
+                    android:layout_marginTop="4dp"
+                    android:layout_marginRight="34dp"
+                    android:ellipsize="end"
+                    android:gravity="top|left"
+                    android:lines="2"
+                    android:text="南京市什么区什么花园1号楼2单元302室2单元302室2单元302室"
+                    android:textColor="#ff333333"
+                    android:textSize="14sp"
+                    app:layout_constraintLeft_toLeftOf="@id/tv_name"
+                    app:layout_constraintRight_toRightOf="parent"
+                    app:layout_constraintTop_toBottomOf="@id/tv_name" />
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginRight="4dp"
+                    android:src="@mipmap/icon_inter"
+                    app:layout_constraintBottom_toBottomOf="parent"
+                    app:layout_constraintRight_toRightOf="parent"
+                    app:layout_constraintTop_toTopOf="parent" />
+            </android.support.constraint.ConstraintLayout>
+
+            <RelativeLayout
+                android:id="@+id/rl_empty"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:background="@drawable/bg_settings_cell">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_centerInParent="true"
+                    android:drawableLeft="@mipmap/icon_dingdandizhi"
+                    android:drawablePadding="10dp"
+                    android:paddingRight="30dp"
+                    android:text="请填写收货地址"
+                    android:textColor="#ff333333"
+                    android:textSize="16sp"
+                    android:textStyle="bold" />
+
+                <ImageView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_alignParentRight="true"
+                    android:layout_centerVertical="true"
+                    android:layout_marginRight="4dp"
+                    android:src="@mipmap/icon_inter" />
+            </RelativeLayout>
+        </FrameLayout>
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginLeft="20dp"
+            android:layout_marginTop="10dp"
+            android:layout_marginRight="20dp"
+            android:background="@drawable/bg_settings_cell"
+            android:orientation="vertical"
+            android:paddingLeft="15dp"
+            android:paddingRight="15dp">
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginTop="15dp"
+                android:orientation="horizontal">
+
+                <com.android.chmo.ui.view.RoundImageView
+                    android:id="@+id/iv_cover"
+                    android:layout_width="80dp"
+                    android:layout_height="80dp"
+                    android:src="@mipmap/def_img2"
+                    app:riv_radius="4dp" />
+
+                <TextView
+                    android:id="@+id/tv_title"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="10dp"
+                    android:ellipsize="end"
+                    android:lines="3"
+                    android:text="兑换物品标题介绍兑换物品标题介绍兑换物品标题"
+                    android:textColor="@color/black"
+                    android:textSize="14sp"
+                    android:textStyle="bold" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="44dp"
+                android:layout_marginTop="5dp"
+                android:gravity="center"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:text="订单价格"
+                    android:textColor="#ff333333"
+                    android:textSize="13sp" />
+
+                <TextView
+                    android:id="@+id/tv_integral"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="40积分"
+                    android:textColor="@color/pink"
+                    android:textSize="14sp"
+                    android:textStyle="bold" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="@color/divider" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="44dp"
+                android:gravity="center"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:text="数量"
+                    android:textColor="#ff333333"
+                    android:textSize="13sp" />
+
+                <ImageView
+                    android:id="@+id/btn_minus"
+                    android:layout_width="30dp"
+                    android:layout_height="30dp"
+                    android:scaleType="centerCrop"
+                    android:src="@drawable/icon_minus" />
+
+                <TextView
+                    android:id="@+id/tv_amount"
+                    android:layout_width="40dp"
+                    android:layout_height="wrap_content"
+                    android:gravity="center"
+                    android:text="1"
+                    android:textColor="#ff333333"
+                    android:textSize="14sp" />
+
+                <ImageView
+                    android:id="@+id/btn_add"
+                    android:layout_width="30dp"
+                    android:layout_height="30dp"
+                    android:scaleType="centerCrop"
+                    android:src="@drawable/icon_add" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="match_parent"
+                android:layout_height="1dp"
+                android:background="@color/divider" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="44dp"
+                android:gravity="center"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:text="配送方式"
+                    android:textColor="#ff333333"
+                    android:textSize="13sp" />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="包邮"
+                    android:textColor="#ff333333"
+                    android:textSize="14sp" />
+            </LinearLayout>
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="44dp"
+                android:gravity="center"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="留言"
+                    android:textColor="#ff333333"
+                    android:textSize="13sp" />
+
+                <EditText
+                    android:id="@+id/et_msg"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:background="@color/transparent"
+                    android:gravity="right"
+                    android:hint="输入你的备注信息"
+                    android:textColor="@color/black"
+                    android:textSize="14sp" />
+            </LinearLayout>
+        </LinearLayout>
+
+        <View
+            android:layout_width="wrap_content"
+            android:layout_height="0dp"
+            android:layout_weight="1" />
+
+        <Button
+            android:id="@+id/btn_confirm"
+            style="@style/largeBtn"
+            android:layout_marginLeft="20dp"
+            android:layout_marginRight="20dp"
+            android:layout_marginBottom="10dp"
+            android:text="确认兑换" />
+
+    </LinearLayout>
+
+    <LinearLayout
+        android:id="@+id/ll_success"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:background="@color/bg"
+        android:gravity="center"
+        android:orientation="vertical"
+        android:visibility="gone"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintTop_toBottomOf="@id/top_bar">
+
+        <ImageView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="38dp"
+            android:src="@mipmap/icon_chenggong" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="26dp"
+            android:gravity="center"
+            android:text="兑换成功\n所兑换商品将会尽快发货,请耐心等待 "
+            android:textColor="#ff000000"
+            android:textSize="14sp" />
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            android:layout_weight="1" />
+
+        <Button
+            android:id="@+id/btn_back"
+            style="@style/largeBtn"
+            android:layout_marginLeft="20dp"
+            android:layout_marginRight="20dp"
+            android:text="返回" />
+
+        <View
+            android:layout_width="0dp"
+            android:layout_height="0dp"
+            android:layout_weight="1" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginBottom="10dp"
+            android:text="客服热线:17768144625"
+            android:textColor="#ff4d4d4d"
+            android:textSize="12sp" />
+    </LinearLayout>
+</android.support.constraint.ConstraintLayout>

+ 50 - 0
app/src/main/res/layout/activity_store.xml

@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout 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="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/pink"
+    android:fitsSystemWindows="true"
+    android:orientation="vertical"
+    tools:context=".ui.activity.WebViewActivity">
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="50dp">
+
+        <ImageView
+            android:id="@+id/btn_back"
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_alignParentLeft="true"
+            android:layout_centerVertical="true"
+            android:paddingLeft="12dp"
+            android:paddingRight="15dp"
+            android:scaleType="centerInside"
+            android:src="@mipmap/nav_return_baise" />
+
+        <TextView
+            android:id="@+id/tv_title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerHorizontal="true"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="50dp"
+            android:layout_marginRight="50dp"
+            android:ellipsize="end"
+            android:lines="1"
+            android:text="积分商城"
+            android:textAlignment="center"
+            android:textColor="#ffffffff"
+            android:textSize="19sp"
+            android:textStyle="bold" />
+    </RelativeLayout>
+
+    <android.support.v7.widget.RecyclerView
+        android:id="@+id/recycler_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:background="@color/white" />
+
+</LinearLayout>

+ 58 - 0
app/src/main/res/layout/dialog_merchandise_detail.xml

@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:gravity="center"
+    android:orientation="vertical">
+
+    <android.support.constraint.ConstraintLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@drawable/bg_dialog_merchandise_detail">
+
+        <com.android.chmo.ui.view.RoundedRelativeLayout
+            android:id="@+id/banner_container"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            app:layout_constraintDimensionRatio="335:337"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toTopOf="parent">
+
+            <cn.bingoogolapple.bgabanner.BGABanner
+                android:id="@+id/banner"
+                android:layout_width="match_parent"
+                android:layout_height="match_parent"
+                android:background="#F2F4F5"
+                app:banner_pageChangeDuration="2000"
+                app:banner_pointAutoPlayAble="true"
+                app:banner_pointContainerBackground="@android:color/transparent"
+                app:banner_pointDrawable="@android:color/transparent"
+                app:banner_pointTopBottomMargin="15dp"
+                app:banner_transitionEffect="alpha" />
+        </com.android.chmo.ui.view.RoundedRelativeLayout>
+
+
+        <TextView
+            android:id="@+id/tv_intro"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_margin="15dp"
+            android:text="辅助文字辅助文字辅助文,字辅助文字辅。助文字辅助文字辅助,文字辅助文字辅助文,字辅助文字辅助文字辅助文字辅助文字,辅助文字辅助文字辅助文字辅助文字,辅助文字辅助文字辅助文字辅助文字辅助文字辅助文字辅助文字辅助文字辅助文,字辅助文字辅助文字"
+            android:textColor="@color/black"
+            android:textSize="14sp"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toBottomOf="@id/banner_container" />
+    </android.support.constraint.ConstraintLayout>
+
+    <ImageView
+        android:id="@+id/btn_close"
+        android:layout_width="44dp"
+        android:layout_height="44dp"
+        android:layout_marginTop="15dp"
+        android:src="@mipmap/icon_guanbi" />
+
+</LinearLayout>

+ 16 - 0
app/src/main/res/layout/dialog_send_gift.xml

@@ -6,6 +6,22 @@
     android:background="@drawable/bg_dialog_send_gift"
     android:orientation="vertical">
 
+    <TextView
+        android:id="@+id/tv_store"
+        android:layout_width="match_parent"
+        android:layout_height="37dp"
+        android:drawableRight="@mipmap/icon_inter"
+        android:gravity="left|center"
+        android:paddingLeft="15dp"
+        android:paddingRight="15dp"
+        android:textColor="#ffff9500"
+        android:textSize="12sp" />
+
+    <View
+        android:layout_width="match_parent"
+        android:layout_height="2dp"
+        android:background="#34000000" />
+
     <com.google.android.flexbox.FlexboxLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"

+ 109 - 0
app/src/main/res/layout/header_store_list.xml

@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="145dp">
+
+    <ImageView
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:scaleType="fitXY"
+        android:src="@mipmap/img_top_bg"
+        app:layout_constraintDimensionRatio="563:87"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <com.dd.ShadowLayout
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:layout_centerVertical="true"
+        android:layout_marginLeft="8dp"
+        android:layout_marginRight="8dp"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:sl_cornerRadius="12dp"
+        app:sl_dx="0dp"
+        app:sl_dy="6dp"
+        app:sl_shadowColor="#14000000"
+        app:sl_shadowRadius="12dp">
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="80dp"
+            android:background="@drawable/bg_order_menu"
+            android:gravity="center"
+            android:orientation="horizontal">
+
+            <LinearLayout
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:orientation="horizontal">
+
+                <ImageView
+                    android:layout_width="30dp"
+                    android:layout_height="30dp"
+                    android:src="@mipmap/jifen_icon_jifen" />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="6dp"
+                    android:text="积分"
+                    android:textColor="@color/black"
+                    android:textSize="16sp" />
+
+                <TextView
+                    android:id="@+id/tv_integral"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="6dp"
+                    android:text="0"
+                    android:textColor="@color/black"
+                    android:textSize="20sp"
+                    android:textStyle="bold" />
+            </LinearLayout>
+
+            <View
+                android:layout_width="1dp"
+                android:layout_height="30dp"
+                android:background="@color/bg" />
+
+            <LinearLayout
+                android:id="@+id/ll_history"
+                android:layout_width="0dp"
+                android:layout_height="match_parent"
+                android:layout_weight="1"
+                android:gravity="center"
+                android:orientation="horizontal">
+
+                <ImageView
+                    android:layout_width="30dp"
+                    android:layout_height="30dp"
+                    android:src="@mipmap/jifen_icon_jilu" />
+
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="6dp"
+                    android:text="兑换记录"
+                    android:textColor="@color/black"
+                    android:textSize="16sp" />
+            </LinearLayout>
+        </LinearLayout>
+    </com.dd.ShadowLayout>
+
+    <TextView
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:layout_marginLeft="20dp"
+        android:text="商品列表"
+        android:textColor="#ff000000"
+        android:textSize="18sp"
+        android:textStyle="bold"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toLeftOf="parent" />
+</android.support.constraint.ConstraintLayout>

+ 71 - 0
app/src/main/res/layout/item_exchange_history.xml

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:paddingLeft="20dp"
+    android:paddingTop="10dp"
+    android:paddingRight="20dp">
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="94dp"
+        android:background="@drawable/bg_cell"
+        android:gravity="center"
+        android:orientation="horizontal"
+        android:paddingLeft="15dp"
+        android:paddingRight="15dp">
+
+        <com.android.chmo.ui.view.RoundImageView
+            android:id="@+id/iv_cover"
+            android:layout_width="64dp"
+            android:layout_height="64dp"
+            android:scaleType="centerCrop"
+            android:src="@mipmap/def_img2"
+            app:riv_radius="4dp" />
+
+        <LinearLayout
+            android:layout_width="match_parent"
+            android:layout_height="64dp"
+            android:layout_marginLeft="10dp"
+            android:orientation="vertical">
+
+            <TextView
+                android:id="@+id/tv_title"
+                android:layout_width="match_parent"
+                android:layout_height="0dp"
+                android:layout_weight="1"
+                android:ellipsize="end"
+                android:gravity="top"
+                android:lines="2"
+                android:text="兑换物品标题介绍兑换物品标题介绍兑换物品"
+                android:textColor="@color/black"
+                android:textSize="14sp"
+                android:textStyle="bold" />
+
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal">
+
+                <TextView
+                    android:id="@+id/tv_integral"
+                    android:layout_width="0dp"
+                    android:layout_height="wrap_content"
+                    android:layout_weight="1"
+                    android:text="20积分"
+                    android:textColor="@color/pink"
+                    android:textSize="13sp"
+                    android:textStyle="bold" />
+
+                <TextView
+                    android:id="@+id/tv_time"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="2018-12-19 16:23:56"
+                    android:textColor="#ff666666"
+                    android:textSize="13sp" />
+            </LinearLayout>
+        </LinearLayout>
+    </LinearLayout>
+</LinearLayout>

+ 86 - 0
app/src/main/res/layout/item_merchandise.xml

@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto"
+    android:layout_width="match_parent"
+    android:layout_height="140dp"
+    android:orientation="horizontal">
+
+    <com.android.chmo.ui.view.RoundImageView
+        android:id="@+id/iv_cover"
+        android:layout_width="110dp"
+        android:layout_height="110dp"
+        android:layout_centerVertical="true"
+        android:layout_marginLeft="20dp"
+        android:src="@mipmap/def_img2"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintLeft_toLeftOf="parent"
+        app:layout_constraintTop_toTopOf="parent"
+        app:riv_radius="4dp" />
+
+    <LinearLayout
+        android:layout_width="0dp"
+        android:layout_height="0dp"
+        android:layout_marginLeft="10dp"
+        android:layout_marginRight="20dp"
+
+
+        android:layout_weight="1"
+        android:orientation="vertical"
+        app:layout_constraintBottom_toBottomOf="@id/iv_cover"
+        app:layout_constraintLeft_toRightOf="@id/iv_cover"
+        app:layout_constraintRight_toRightOf="parent"
+        app:layout_constraintTop_toTopOf="@id/iv_cover">
+
+        <TextView
+            android:id="@+id/tv_title"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:ellipsize="end"
+            android:lines="2"
+            android:text="兑换物品标题介绍兑换物品标题介绍兑换物品标题兑换物品标题介绍兑换物品标题介绍兑换物品标题兑换物品标题介绍兑换物品标题介绍兑换物品标题兑换物品标题介绍兑换物品标题介绍兑换物品标题"
+            android:textColor="@color/black"
+            android:textSize="14sp"
+            android:textStyle="bold" />
+
+        <TextView
+            android:id="@+id/tv_stock"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="4dp"
+            android:text="剩余530件"
+            android:textColor="#ff999999"
+            android:textSize="13sp" />
+
+        <TextView
+            android:id="@+id/tv_integral"
+            android:layout_width="wrap_content"
+            android:layout_height="0dp"
+            android:layout_weight="1"
+            android:gravity="bottom"
+            android:text="20积分"
+            android:textColor="#ffff4095"
+            android:textSize="14sp"
+            android:textStyle="bold" />
+
+        <TextView
+            android:id="@+id/tv_price"
+            android:layout_width="34dp"
+            android:layout_height="14dp"
+            android:text="¥15.00"
+            android:textColor="#ff999999"
+            android:textSize="10sp" />
+    </LinearLayout>
+
+    <Button
+        android:id="@+id/btn_exchange"
+        style="@style/Widget.AppCompat.Button.Borderless"
+        android:layout_width="78dp"
+        android:layout_height="26dp"
+        android:layout_marginRight="20dp"
+        android:background="@drawable/bg_btn_exchange"
+        android:text="立即兑换"
+        android:textColor="@color/pink"
+        android:textSize="13sp"
+        app:layout_constraintBottom_toBottomOf="@id/iv_cover"
+        app:layout_constraintRight_toRightOf="parent" />
+</android.support.constraint.ConstraintLayout>

+ 36 - 0
app/src/main/res/layout/page_mine.xml

@@ -234,6 +234,42 @@
                         android:src="@mipmap/icon_inter" />
                 </LinearLayout>
 
+                <View
+                    android:layout_width="match_parent"
+                    android:layout_height="1dp"
+                    android:layout_marginLeft="20dp"
+                    android:layout_marginRight="20dp"
+                    android:background="#F2F4F5" />
+
+                <LinearLayout
+                    android:id="@+id/ll_integral"
+                    android:layout_width="match_parent"
+                    android:layout_height="60dp"
+                    android:gravity="left|center"
+                    android:orientation="horizontal">
+
+                    <ImageView
+                        android:layout_width="30dp"
+                        android:layout_height="30dp"
+                        android:layout_marginLeft="20dp"
+                        android:src="@mipmap/jifen_icon_jifen" />
+
+                    <TextView
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_marginLeft="15dp"
+                        android:layout_weight="1"
+                        android:text="积分商城"
+                        android:textColor="#000000"
+                        android:textSize="15sp" />
+
+                    <ImageView
+                        android:layout_width="20dp"
+                        android:layout_height="20dp"
+                        android:layout_marginRight="20dp"
+                        android:src="@mipmap/icon_inter" />
+                </LinearLayout>
+
                 <View
                     android:layout_width="match_parent"
                     android:layout_height="1dp"

二進制
app/src/main/res/mipmap-hdpi/icon_dingdandizhi.png


二進制
app/src/main/res/mipmap-hdpi/icon_guanbi.png


二進制
app/src/main/res/mipmap-hdpi/icon_jianshao.png


二進制
app/src/main/res/mipmap-hdpi/icon_jianshao_dis.png


二進制
app/src/main/res/mipmap-hdpi/icon_zengjia.png


二進制
app/src/main/res/mipmap-hdpi/icon_zengjia_dis.png


二進制
app/src/main/res/mipmap-hdpi/img_top_bg.png


二進制
app/src/main/res/mipmap-hdpi/into_icon_jifen.png


二進制
app/src/main/res/mipmap-hdpi/into_icon_lianxikefu.png


二進制
app/src/main/res/mipmap-hdpi/into_icon_qianbao.png


二進制
app/src/main/res/mipmap-hdpi/into_icon_shezhi_baise.png


二進制
app/src/main/res/mipmap-hdpi/into_icon_shipin.png


二進制
app/src/main/res/mipmap-hdpi/jifen_icon_jifen.png


二進制
app/src/main/res/mipmap-hdpi/jifen_icon_jilu.png


二進制
app/src/main/res/mipmap-xhdpi/icon_dingdandizhi.png


二進制
app/src/main/res/mipmap-xhdpi/icon_guanbi.png


二進制
app/src/main/res/mipmap-xhdpi/icon_jianshao.png


二進制
app/src/main/res/mipmap-xhdpi/icon_jianshao_dis.png


二進制
app/src/main/res/mipmap-xhdpi/icon_zengjia.png


二進制
app/src/main/res/mipmap-xhdpi/icon_zengjia_dis.png


二進制
app/src/main/res/mipmap-xhdpi/img_top_bg.png


二進制
app/src/main/res/mipmap-xhdpi/into_icon_jifen.png


二進制
app/src/main/res/mipmap-xhdpi/into_icon_qianbao.png


二進制
app/src/main/res/mipmap-xhdpi/into_icon_shipin.png


二進制
app/src/main/res/mipmap-xhdpi/jifen_icon_jifen.png


二進制
app/src/main/res/mipmap-xhdpi/jifen_icon_jilu.png


二進制
app/src/main/res/mipmap-xxhdpi/icon_dingdandizhi.png


二進制
app/src/main/res/mipmap-xxhdpi/icon_guanbi.png


二進制
app/src/main/res/mipmap-xxhdpi/icon_jianshao.png


二進制
app/src/main/res/mipmap-xxhdpi/icon_jianshao_dis.png


二進制
app/src/main/res/mipmap-xxhdpi/icon_zengjia.png


二進制
app/src/main/res/mipmap-xxhdpi/icon_zengjia_dis.png


二進制
app/src/main/res/mipmap-xxhdpi/img_top_bg.png


二進制
app/src/main/res/mipmap-xxhdpi/into_icon_jifen.png


二進制
app/src/main/res/mipmap-xxhdpi/into_icon_qianbao.png


二進制
app/src/main/res/mipmap-xxhdpi/into_icon_shenqing.png


二進制
app/src/main/res/mipmap-xxhdpi/into_icon_shipin.png


二進制
app/src/main/res/mipmap-xxhdpi/into_icon_yuyuedingdan.png


二進制
app/src/main/res/mipmap-xxhdpi/jifen_icon_jifen.png


二進制
app/src/main/res/mipmap-xxhdpi/jifen_icon_jilu.png


二進制
app/src/main/res/mipmap-xxxhdpi/icon_dingdandizhi.png


二進制
app/src/main/res/mipmap-xxxhdpi/icon_guanbi.png


二進制
app/src/main/res/mipmap-xxxhdpi/icon_jianshao.png


二進制
app/src/main/res/mipmap-xxxhdpi/icon_jianshao_dis.png


二進制
app/src/main/res/mipmap-xxxhdpi/icon_zengjia.png


二進制
app/src/main/res/mipmap-xxxhdpi/icon_zengjia_dis.png


二進制
app/src/main/res/mipmap-xxxhdpi/img_top_bg.png


二進制
app/src/main/res/mipmap-xxxhdpi/into_icon_jifen.png


二進制
app/src/main/res/mipmap-xxxhdpi/into_icon_qianbao.png


二進制
app/src/main/res/mipmap-xxxhdpi/into_icon_shipin.png


二進制
app/src/main/res/mipmap-xxxhdpi/jifen_icon_jifen.png


二進制
app/src/main/res/mipmap-xxxhdpi/jifen_icon_jilu.png