ソースを参照

添加 游戏主页点赞与表情点赞的功能
添加 任务详情页面提交自定义字段的界面

zengjiebin 7 年 前
コミット
15642ba235

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

@@ -421,19 +421,27 @@
         <activity
             android:name="com.sheep.gamegroup.view.activity.SignRechargeAct"
             android:screenOrientation="portrait" />
-        <activity android:name="com.sheep.gamegroup.view.activity.ActUserNoviceGuidance"
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActUserNoviceGuidance"
             android:screenOrientation="portrait" />
         <activity
             android:name="com.sheep.gamegroup.view.activity.ActXiaomiGame"
             android:screenOrientation="portrait" />
-        <activity android:name="com.sheep.gamegroup.view.activity.ActTestExpression"
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActTestExpression"
             android:screenOrientation="portrait" />
         <activity
             android:name="com.sheep.gamegroup.view.activity.MiddleScreenShotAct"
             android:screenOrientation="user"
             android:theme="@style/MyDialogActivityTheme" />
-        <activity android:name="com.sheep.gamegroup.view.activity.ActPlayVideo"
-            android:screenOrientation="user" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActPlayVideo"
+            android:screenOrientation="user"
+            android:theme="@style/AppTheme.fullScreen" />
+        <activity
+            android:name="com.sheep.gamegroup.view.activity.ActInputAndPickerImg"
+            android:screenOrientation="portrait"
+            android:theme="@style/AppTheme.translucent" />
 
         <!-- 友盟start -->
         <meta-data
@@ -632,8 +640,8 @@
             android:name="com.sheep.gamegroup.view.activity.ActSheepPngList"
             android:screenOrientation="portrait" />
         <!--<activity-->
-            <!--android:name="com.sheep.gamegroup.view.activity.ActFindGame"-->
-            <!--android:screenOrientation="portrait" />-->
+        <!--android:name="com.sheep.gamegroup.view.activity.ActFindGame"-->
+        <!--android:screenOrientation="portrait" />-->
         <activity
             android:name="com.sheep.gamegroup.view.activity.ActArticle"
             android:configChanges="orientation|screenSize|keyboardHidden" />

+ 31 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/InputAndUrlList.java

@@ -0,0 +1,31 @@
+package com.sheep.gamegroup.model.entity;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by realicing on 2018/11/12.
+ * realicing@sina.com
+ * 自定义字段与图片列表
+ */
+public class InputAndUrlList implements Serializable {
+    private String input;
+    private List<String> list = new ArrayList<>();
+
+    public String getInput() {
+        return input;
+    }
+
+    public void setInput(String input) {
+        this.input = input;
+    }
+
+    public List<String> getList() {
+        return list;
+    }
+
+    public void setList(List<String> list) {
+        this.list = list;
+    }
+}

+ 13 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/TaskAcceptedEty.java

@@ -26,6 +26,8 @@ public class TaskAcceptedEty implements Serializable{
     private int child_task_id;//0 1开始子任务  2完成第二个子任务
     private int task_child_id;
     private int allowSubmit;//失败或者下线后,是否可以再次提交截图 2 不可以 1 可以
+    //用于自定义字段,如自定义手机号
+    private String unique_identification;//UniqueIdentification string       `orm:"column(unique_identification);null" description:"唯一标识" json:"unique_identification"`
 
     public int getChild_task_id() {
         return child_task_id;
@@ -155,6 +157,17 @@ public class TaskAcceptedEty implements Serializable{
         this.allowSubmit = allowSubmit;
     }
 
+
+    public String getUnique_identification() {
+        return unique_identification;
+    }
+
+    public void setUnique_identification(String unique_identification) {
+        this.unique_identification = unique_identification;
+    }
+
+
+
     @Override
     public boolean equals(Object obj) {
         return obj instanceof TaskAcceptedEty &&

+ 9 - 0
app/src/main/java/com/sheep/gamegroup/model/entity/TaskEty.java

@@ -44,6 +44,8 @@ public class TaskEty implements Serializable, IDownload {
     private boolean can_download;//是否可以下载
     private int appointment_time;//预约时间
     private String qr_code;//二维码地址
+    //用于自定义字段,如自定义手机号
+    private String unique_identification;//UniqueIdentification string       `orm:"column(unique_identification);null" description:"唯一标识" json:"unique_identification"`
 
     public String getQr_code() {
         return qr_code;
@@ -327,6 +329,13 @@ public class TaskEty implements Serializable, IDownload {
         this.can_download = can_download;
     }
 
+    public String getUnique_identification() {
+        return unique_identification;
+    }
+
+    public void setUnique_identification(String unique_identification) {
+        this.unique_identification = unique_identification;
+    }
 
 
 

+ 10 - 0
app/src/main/java/com/sheep/gamegroup/util/Jump2View.java

@@ -58,6 +58,7 @@ import com.sheep.gamegroup.view.activity.ActGiftDetail;
 import com.sheep.gamegroup.view.activity.ActGuide;
 import com.sheep.gamegroup.view.activity.ActGuideDeblocked;
 import com.sheep.gamegroup.view.activity.ActGuideOnHook;
+import com.sheep.gamegroup.view.activity.ActInputAndPickerImg;
 import com.sheep.gamegroup.view.activity.ActInvitation;
 import com.sheep.gamegroup.view.activity.ActLoadH5;
 import com.sheep.gamegroup.view.activity.ActMain;
@@ -2205,4 +2206,13 @@ public class Jump2View {
         Activity activity = ActivityManager.getInstance().currentActivity();
         activity.startActivity(DataUtil.putObject(new Intent(activity, ActPlayVideo.class), url));
     }
+
+    /**
+     * 提交自定义字段
+     *
+     * @param activity
+     */
+    public void goActInputAndPickerImg(Activity activity, String label) {
+        activity.startActivityForResult(DataUtil.putObject(new Intent(activity, ActInputAndPickerImg.class), label), RequestCodeConstants.REQUEST_CODE_GE_DATA);
+    }
 }

+ 2 - 0
app/src/main/java/com/sheep/gamegroup/util/RequestCodeConstants.java

@@ -7,4 +7,6 @@ package com.sheep.gamegroup.util;
 public class RequestCodeConstants {
     //刷新回调
     public static final int REQUEST_CODE_REFRESH = 1001;
+    //结果回调
+    public static final int REQUEST_CODE_GE_DATA = 1002;
 }

+ 120 - 0
app/src/main/java/com/sheep/gamegroup/view/activity/ActInputAndPickerImg.java

@@ -0,0 +1,120 @@
+package com.sheep.gamegroup.view.activity;
+
+import android.support.v7.widget.AppCompatEditText;
+import android.support.v7.widget.LinearLayoutManager;
+import android.support.v7.widget.RecyclerView;
+import android.view.KeyEvent;
+import android.view.View;
+import android.widget.ImageView;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.chad.library.adapter.base.BaseQuickAdapter;
+import com.chad.library.adapter.base.BaseViewHolder;
+import com.sheep.gamegroup.absBase.AbsChooseImageActivity;
+import com.sheep.gamegroup.model.entity.InputAndUrlList;
+import com.sheep.gamegroup.util.DataUtil;
+import com.sheep.gamegroup.util.KeyEventUtil;
+import com.sheep.gamegroup.util.ViewUtil;
+import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.G;
+
+import java.io.File;
+
+import butterknife.BindView;
+
+/**
+ * Created by realicing on 2018/11/12.
+ * realicing@sina.com
+ * 输入自定义字段
+ */
+public class ActInputAndPickerImg extends AbsChooseImageActivity {
+//
+//    @Override
+//    protected void onCreate(@Nullable Bundle savedInstanceState) {
+//        super.onCreate(savedInstanceState);
+//        setContentView(getLayoutId());
+//        ButterKnife.bind(this);
+//        initView();
+//        initData();
+//    }
+
+    protected int getLayoutId() {
+        return R.layout.act_input_and_piker_img;
+    }
+
+    @BindView(R.id.input_and_picker_img_label)
+    TextView input_and_picker_img_label;
+    @BindView(R.id.input_and_picker_img_et)
+    AppCompatEditText input_and_picker_img_et;
+    @BindView(R.id.input_and_picker_img_rv)
+    RecyclerView recyclerView;
+
+    private InputAndUrlList inputAndUrlList = new InputAndUrlList();
+
+    public void initView() {
+        inputAndUrlList.getList().add(null);
+        recyclerView.setLayoutManager(new LinearLayoutManager(SheepApp.getInstance(), LinearLayoutManager.HORIZONTAL, false));
+        recyclerView.setAdapter(new BaseQuickAdapter<String, BaseViewHolder>(R.layout.item_image_view, inputAndUrlList.getList()) {
+            @Override
+            protected void convert(BaseViewHolder helper, String item) {
+                ImageView imageView = helper.getView(R.id.img_detail);
+                if (item == null) {
+                    ViewUtil.setImage(imageView, ViewUtil.getNetImgByName("add_img"));
+                    helper.itemView.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View view) {
+                            showChooseDialog(false, true, DEFAULT_MAX_COUNT);
+                        }
+                    });
+                } else {
+                    Glide.with(SheepApp.getInstance())
+                            .load(new File(item))
+                            .into(imageView);
+                    helper.itemView.setOnClickListener(new View.OnClickListener() {
+                        @Override
+                        public void onClick(View view) {
+                        }
+                    });
+                }
+            }
+        });
+    }
+
+    public void initData() {
+        String label = DataUtil.getObject(getIntent(), String.class);
+        ViewUtil.setText(input_and_picker_img_label, getString(R.string.input_x, label));
+    }
+
+    //点击确定按钮
+    public void onClickCommit(View view) {
+
+    }
+
+    //点击空白区域
+    public void onClickNullView(View view) {
+        KeyEventUtil.sendKeyDownUp(KeyEvent.KEYCODE_BACK);
+    }
+
+    @Override
+    protected void onNotGetImage(String msg) {
+        G.showToast(msg);
+    }
+
+    @Override
+    protected void onGetImage(String path) {
+        inputAndUrlList.getList().add(path);
+        recyclerView.getAdapter().notifyDataSetChanged();
+    }
+
+    @Override
+    protected void onSetNetImageUrl(String url) {
+
+    }
+
+    @Override
+    protected void onGetNetImageUrl(String url) {
+
+    }
+}

+ 5 - 1
app/src/main/java/com/sheep/gamegroup/view/activity/ActUserAppHome.java

@@ -91,6 +91,8 @@ public class ActUserAppHome extends BaseActivity {
     TextView user_app_home_name;
     @BindView(R.id.user_app_home_game_list)
     RecyclerView user_app_home_game_list;
+    @BindView(R.id.user_app_home_focus_ll)
+    View user_app_home_focus_ll;
 
     private int focus_user_id;
     private TitleFragmentListAdapter mAdapter;
@@ -100,7 +102,9 @@ public class ActUserAppHome extends BaseActivity {
     @Override
     public void initView() {
         focus_user_id = DataUtil.getObject(getIntent(), Integer.class);
-
+        if(TextUtils.equals(String.valueOf(focus_user_id), DataUtil.getInstance().getUserId())){//用户不能关注自己
+            ViewUtil.setVisibility(user_app_home_focus_ll, false);
+        }
         //viewPager
         mAdapter = new TitleFragmentListAdapter(getSupportFragmentManager());
         FgtUserAppHomeCommentList fgtUserAppHomeCommentList = new FgtUserAppHomeCommentList();

+ 32 - 28
app/src/main/java/com/sheep/gamegroup/view/activity/TaskDetailAct.java

@@ -284,14 +284,14 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                 });
             }
         }
-        nameTv.setText(taskReleaseEty.getName() + "");
-        priceTv.setText("+" + taskReleaseEty.getBonusText() + "元");
+        ViewUtil.setText(nameTv, taskReleaseEty.getName());
+        ViewUtil.setText(priceTv, String.format(Locale.CHINA, "+%s元", taskReleaseEty.getBonusText()));
         if (!taskReleaseEty.getDeadline().equals("永久")) {
-            dateTv.setText("截至日期:" + TimeUtil.getDate(TimeUtil.FORMAT, Long.valueOf(taskReleaseEty.getDeadline())) + "");
+            ViewUtil.setText(dateTv, String.format(Locale.CHINA, "截至日期:%s", TimeUtil.getDate(TimeUtil.FORMAT, Long.valueOf(taskReleaseEty.getDeadline()))));
         } else {
-            dateTv.setText("截至日期:" + taskReleaseEty.getDeadline());
+            ViewUtil.setText(dateTv, String.format(Locale.CHINA, "截至日期:%s", taskReleaseEty.getDeadline()));
         }
-        num_tv.setText("剩" + taskReleaseEty.getLast_num() + "份");
+        ViewUtil.setText(num_tv, String.format(Locale.CHINA, "剩%s份", taskReleaseEty.getLast_num()));
 
         TaskHelper.setTaskTagText(num_tv, taskReleaseEty);
         TaskHelper.setNumText(num_tv1, taskReleaseEty);
@@ -1033,30 +1033,34 @@ public class TaskDetailAct extends AbsChooseImageActivity implements TaskDetailC
                 break;
         }
         if (commitScreenShotTaskId > 0) {
-            if (DataUtil.IS_USE_ALL_IMAGE) {//可以上传任意图片
-                showChooseDialog(false, true, DEFAULT_MAX_COUNT);
-            } else if ((DataUtil.IS_USE_SCREEN_SHOT || DataUtil.IS_LISTEN_SCREEN_SHOT) && taskEty.needShotScreen()) {//小绵羊截图方案与监听方案
-                if (ListenerShotService.IS_RECORD_PATH) {//使用记录的方式来获取用户的截图
-                    List<ScreenShotRecord> list = DDProviderHelper.getInstance().getScreenShotRecordList(activity, taskEty.getPackage_names());
-                    showChooseListDialog(false, true, DEFAULT_MAX_COUNT, ListUtil.asList(new ListUtil.CallBack<ScreenShotRecord, String>() {
-                        @Override
-                        public String call(ScreenShotRecord screenShotRecord) {
-                            return screenShotRecord.getPath();
-                        }
-                    }, list, new ListUtil.CallBack<ScreenShotRecord, Boolean>() {
-                        @Override
-                        public Boolean call(ScreenShotRecord screenShotRecord) {
-                            return new File(screenShotRecord.getPath()).exists();
-                        }
-                    }));
-                } else {
-                    File dir = DataUtil.getScreenShotsDir(taskEty.getPackage_names());
-                    showChooseDialog(false, true, DEFAULT_MAX_COUNT, dir);
-                }
-            } else {//用户手动截图方案
-                ArrayList<String> imageUriList = DataUtil.getAllScreenShotList();
+            if(!TextUtils.isEmpty(taskEty.getUnique_identification())){//需要提交自定义字段
+                Jump2View.getInstance().goActInputAndPickerImg(this, taskEty.getUnique_identification());
+            }else {
+                if (DataUtil.IS_USE_ALL_IMAGE) {//可以上传任意图片
+                    showChooseDialog(false, true, DEFAULT_MAX_COUNT);
+                } else if ((DataUtil.IS_USE_SCREEN_SHOT || DataUtil.IS_LISTEN_SCREEN_SHOT) && taskEty.needShotScreen()) {//小绵羊截图方案与监听方案
+                    if (ListenerShotService.IS_RECORD_PATH) {//使用记录的方式来获取用户的截图
+                        List<ScreenShotRecord> list = DDProviderHelper.getInstance().getScreenShotRecordList(activity, taskEty.getPackage_names());
+                        showChooseListDialog(false, true, DEFAULT_MAX_COUNT, ListUtil.asList(new ListUtil.CallBack<ScreenShotRecord, String>() {
+                            @Override
+                            public String call(ScreenShotRecord screenShotRecord) {
+                                return screenShotRecord.getPath();
+                            }
+                        }, list, new ListUtil.CallBack<ScreenShotRecord, Boolean>() {
+                            @Override
+                            public Boolean call(ScreenShotRecord screenShotRecord) {
+                                return new File(screenShotRecord.getPath()).exists();
+                            }
+                        }));
+                    } else {
+                        File dir = DataUtil.getScreenShotsDir(taskEty.getPackage_names());
+                        showChooseDialog(false, true, DEFAULT_MAX_COUNT, dir);
+                    }
+                } else {//用户手动截图方案
+                    ArrayList<String> imageUriList = DataUtil.getAllScreenShotList();
 
-                showChooseDialog(false, true, DEFAULT_MAX_COUNT, imageUriList);
+                    showChooseDialog(false, true, DEFAULT_MAX_COUNT, imageUriList);
+                }
             }
         } else {
             G.showToast("暂无任务可以上传");

+ 53 - 3
app/src/main/java/com/sheep/gamegroup/view/adapter/AdpGcGameAppComment.java

@@ -7,12 +7,17 @@ import android.widget.TextView;
 
 import com.chad.library.adapter.base.BaseQuickAdapter;
 import com.chad.library.adapter.base.BaseViewHolder;
+import com.sheep.gamegroup.model.entity.BaseMessage;
 import com.sheep.gamegroup.model.entity.UserComment;
+import com.sheep.gamegroup.model.util.SheepSubscriber;
 import com.sheep.gamegroup.util.ActivityManager;
+import com.sheep.gamegroup.util.ApiUtil;
 import com.sheep.gamegroup.util.Jump2View;
 import com.sheep.gamegroup.util.TextViewUtil;
 import com.sheep.gamegroup.util.ViewUtil;
 import com.sheep.jiuyan.samllsheep.R;
+import com.sheep.jiuyan.samllsheep.SheepApp;
+import com.sheep.jiuyan.samllsheep.utils.G;
 
 import java.util.List;
 
@@ -33,11 +38,11 @@ public class AdpGcGameAppComment extends BaseQuickAdapter<UserComment, BaseViewH
         TextView game_app_comment_user_name = helper.itemView.findViewById(R.id.game_app_comment_user_name);
         AppCompatRatingBar game_app_comment_score = helper.itemView.findViewById(R.id.game_app_comment_score);
         TextView game_app_comment_num1 = helper.itemView.findViewById(R.id.game_app_comment_num1);
-        TextView game_app_comment_num2 = helper.itemView.findViewById(R.id.game_app_comment_num2);
-        TextView game_app_comment_num3 = helper.itemView.findViewById(R.id.game_app_comment_num3);
+        final TextView game_app_comment_num2 = helper.itemView.findViewById(R.id.game_app_comment_num2);
+        final TextView game_app_comment_num3 = helper.itemView.findViewById(R.id.game_app_comment_num3);
         View game_app_comment_line_top = helper.itemView.findViewById(R.id.game_app_comment_line_top);
         ViewUtil.setVisibility(game_app_comment_line_top, position != 0);
-        if(item == null){
+        if (item == null) {
             return;
         }
         ViewUtil.setAvatar(game_app_comment_user_avatar, item.getAvatar());
@@ -64,5 +69,50 @@ public class AdpGcGameAppComment extends BaseQuickAdapter<UserComment, BaseViewH
                 Jump2View.getInstance().goActUserAppHome(ActivityManager.getInstance().currentActivity(), item.getUser_id());
             }
         });
+
+        game_app_comment_num2.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                game_app_comment_num2.setEnabled(false);
+                ApiUtil.postGameUserUserGameCommentLike(item.getId(), new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        G.showToast("操作成功");
+                        item.plusLike();
+                        ViewUtil.setText(game_app_comment_num2, item.getLike());
+                        game_app_comment_num2.setEnabled(true);
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast("操作失败");
+                        game_app_comment_num2.setEnabled(true);
+                    }
+                });
+            }
+        });
+        game_app_comment_num3.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                game_app_comment_num3.setEnabled(false);
+                ApiUtil.postGameUserUserGameCommentExpressionLike(item.getId(), new SheepSubscriber<BaseMessage>(SheepApp.getInstance()) {
+
+                    @Override
+                    public void onNext(BaseMessage baseMessage) {
+                        G.showToast("操作成功");
+                        item.plusExpression();
+                        ViewUtil.setText(game_app_comment_num3, item.getExpression());
+                        game_app_comment_num3.setEnabled(true);
+                    }
+
+                    @Override
+                    public void onError(BaseMessage baseMessage) {
+                        G.showToast("操作失败");
+                        game_app_comment_num3.setEnabled(true);
+                    }
+                });
+            }
+        });
     }
 }

+ 1 - 1
app/src/main/java/com/sheep/gamegroup/view/adapter/PlayGameItemAdapter.java

@@ -46,7 +46,7 @@ public class PlayGameItemAdapter extends AdbCommonRecycler<GameEntity>{
                 Jump2View.getInstance().goPlayGameDetail((Activity) activity, gameEntity.getApp().getId());
             }
         });
-        if(TestUtil.isDev())
+        if(TestUtil.isTest())
             holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
                 @Override
                 public boolean onLongClick(View view) {

+ 106 - 0
app/src/main/res/layout/act_input_and_piker_img.xml

@@ -0,0 +1,106 @@
+<?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"
+    tools:context="com.sheep.gamegroup.view.activity.ActInputAndPickerImg">
+
+    <View
+        android:id="@+id/input_and_picker_img_top"
+        android:layout_width="match_parent"
+        android:layout_height="0dp"
+        android:onClick="onClickNullView"
+        app:layout_constraintBottom_toTopOf="@id/input_and_picker_img_cl"
+        app:layout_constraintTop_toTopOf="parent" />
+
+    <android.support.constraint.ConstraintLayout
+        android:id="@+id/input_and_picker_img_cl"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:background="@color/white"
+        app:layout_constraintBottom_toBottomOf="parent"
+        app:layout_constraintTop_toBottomOf="@id/input_and_picker_img_top">
+
+        <TextView
+            android:id="@+id/input_and_picker_img_label"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:paddingStart="16dp"
+            android:paddingEnd="5dp"
+            android:text="@string/input_x"
+            android:textColor="#ff333333"
+            android:textSize="14sp"
+            app:layout_constraintBottom_toBottomOf="@id/input_and_picker_img_et"
+            app:layout_constraintEnd_toStartOf="@id/input_and_picker_img_et"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toTopOf="@id/input_and_picker_img_et" />
+
+        <android.support.v7.widget.AppCompatEditText
+            android:id="@+id/input_and_picker_img_et"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content"
+            android:layout_marginStart="10dp"
+            android:layout_marginTop="30dp"
+            android:background="@null"
+            android:textColor="@color/black_666666"
+            android:textSize="14sp"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toEndOf="@id/input_and_picker_img_label"
+            app:layout_constraintTop_toTopOf="parent" />
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1px"
+            android:layout_marginStart="16dp"
+            android:layout_marginTop="19dp"
+            android:layout_marginEnd="16dp"
+            android:background="#F2F2F2"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@id/input_and_picker_img_et" />
+
+        <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="40dp"
+            android:paddingStart="16dp"
+            android:paddingEnd="16dp"
+            android:text="@string/img_upload"
+            android:textColor="#ff999999"
+            android:textSize="13sp"
+            app:layout_constraintTop_toBottomOf="@id/input_and_picker_img_et" />
+
+        <android.support.v7.widget.RecyclerView
+            android:id="@+id/input_and_picker_img_rv"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="76dp"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@id/input_and_picker_img_et" />
+
+        <View
+            android:layout_width="match_parent"
+            android:layout_height="1px"
+            android:layout_marginTop="34dp"
+            android:background="#F2F2F2"
+            app:layout_constraintTop_toBottomOf="@id/input_and_picker_img_rv" />
+
+        <TextView
+            android:id="@+id/input_and_picker_img_commit"
+            style="@style/style_button_full"
+            android:layout_height="33dp"
+            android:layout_marginStart="15dp"
+            android:layout_marginTop="42dp"
+            android:layout_marginEnd="15dp"
+            android:layout_marginBottom="8dp"
+            android:onClick="onClickCommit"
+            android:text="@android:string/ok"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintStart_toStartOf="parent"
+            app:layout_constraintTop_toBottomOf="@id/input_and_picker_img_rv" />
+
+
+    </android.support.constraint.ConstraintLayout>
+</android.support.constraint.ConstraintLayout>

+ 7 - 0
app/src/main/res/layout/item_image_view.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
+    android:id="@+id/img_detail"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:paddingStart="16dp"
+    android:paddingEnd="4dp"/>

+ 17 - 0
app/src/main/res/values/gamegroup_styles.xml

@@ -108,6 +108,23 @@
         <item name="android:windowBackground">@android:color/transparent</item><!--背景透明-->
         <item name="android:backgroundDimAmount">0.7</item><!--透明度 0.0f到1.0f之间。1.0完全不透明,0.0f完全透明-->
     </style>
+    <!--全屏-->
+    <style name="AppTheme.fullScreen" parent="@style/AppTheme">
+        <!--是否去除标题 -->  
+        <item name="android:windowNoTitle">true</item>  
+    </style>
+    <!--全屏透明背景-->
+    <style name="AppTheme.translucent" parent="@style/AppTheme.fullScreen">
+         <!--背景颜色及和透明程度-->  
+        <item name="android:windowBackground">@color/transparent</item>  
+        <!--是否去除边框-->  
+        <item name="android:windowFrame">@null</item>  
+        <!--是否模糊-->  
+        <item name="android:backgroundDimEnabled">true</item>  
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:background">@color/transparent</item>
+        <item name="android:backgroundDimAmount">0.6</item>
+    </style>
     <style name="style_nomal_tv">
         <item name="android:layout_width">wrap_content</item>
         <item name="android:layout_height">wrap_content</item>

+ 3 - 0
app/src/main/res/values/strings.xml

@@ -131,4 +131,7 @@
     <string name="total_x_comment">共%s条评论</string>
     <string name="total_x_reply">共%s条回复</string>
     <string name="reply_x">回复:%s</string>
+
+    <string name="input_x">请输入%s:</string>
+    <string name="img_upload">图片上传</string>
 </resources>