Przeglądaj źródła

任务记录, 界面调整

zhaoyi 8 lat temu
rodzic
commit
2fb740044d

+ 1 - 0
app/build.gradle

@@ -34,6 +34,7 @@ dependencies {
     compile 'com.github.bumptech.glide:glide:3.7.0'
     compile 'com.squareup.okhttp3:okhttp:3.9.1'
     compile 'org.greenrobot:eventbus:3.1.1'
+    compile 'com.zhy:base-adapter:3.0.3'
     debugCompile 'com.readystatesoftware.chuck:library:1.1.0'
     releaseCompile 'com.readystatesoftware.chuck:library-no-op:1.1.0'
 }

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

@@ -64,6 +64,7 @@
 
         <activity android:name=".page.BindWxActivity">
         </activity>
+        <activity android:name=".page.TaskRecordActivity"/>
     </application>
 
 </manifest>

+ 1 - 1
app/src/main/java/com/jiuyan/sheep_children/floatwindow/FloatService.java

@@ -91,7 +91,7 @@ public class FloatService extends Service implements View.OnClickListener {
 
         //设置悬浮窗口长宽数据.
         params.width = -2;
-        params.height = DeviceInfo.dip2px(this,50f);
+        params.height = DeviceInfo.dip2px(this,40f);
 
         LayoutInflater inflater = LayoutInflater.from(getApplication());
         //获取浮动窗口视图所在布局.

+ 1 - 1
app/src/main/java/com/jiuyan/sheep_children/net/Url.java

@@ -11,5 +11,5 @@ public class Url {
     public static String PUBLISH_TASKS =Config.instance().mBaseUrl + "/v1/task_publish/getTasks/";
     public static String BIND_WX = Config.instance().mBaseUrl + "/v1/user/bindWx";
     public static String USER_INFO=Config.instance().mBaseUrl + "/v1/user/getUserInfo";
-
+    public static String USER_COMMIT=Config.instance().mBaseUrl + "/v1/user/getDoneTask";
 }

+ 5 - 0
app/src/main/java/com/jiuyan/sheep_children/page/DownloadActivity.java

@@ -117,6 +117,11 @@ public class DownloadActivity extends BaseActivity implements View.OnClickListen
                     mState = DOWNLOADING;
                     downloadRange(mCurrentDownload);
                     break;
+                case DONE:
+                    if (!TextUtils.isEmpty(mPath)) {
+                        installApk(mPath);
+                    }
+                    break;
             }
             refreshButton();
         }

+ 1 - 1
app/src/main/java/com/jiuyan/sheep_children/page/LoginActivity.java

@@ -99,7 +99,7 @@ public class LoginActivity extends BaseActivity {
     }
 
     private void loginFromWx() {
-        SpUtils.login(this, "testkajhsdasdjoasd");
+        SpUtils.login(this, "abcabc");
     }
 
 

+ 38 - 7
app/src/main/java/com/jiuyan/sheep_children/page/MainActivity.java

@@ -16,6 +16,7 @@ import android.support.v7.widget.RecyclerView;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 import android.widget.Toast;
@@ -34,6 +35,7 @@ import com.jiuyan.sheep_children.net.Url;
 import com.jiuyan.sheep_children.page.adapter.TaskAdapter;
 import com.jiuyan.sheep_children.page.entry.Task;
 import com.jiuyan.sheep_children.page.entry.TaskPublish;
+import com.jiuyan.sheep_children.page.entry.User;
 import com.jiuyan.sheep_children.utils.DeviceInfo;
 import com.jiuyan.sheep_children.utils.GsonUtil;
 import com.jiuyan.sheep_children.utils.PremissUtils;
@@ -47,6 +49,7 @@ import org.greenrobot.eventbus.ThreadMode;
 import java.io.IOException;
 import java.lang.reflect.Type;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 
 import okhttp3.Call;
@@ -58,6 +61,12 @@ public class MainActivity extends BaseActivity implements View.OnClickListener {
     private XRecyclerView mRecyclerView;
     private TaskAdapter mAdapter;
     private TextView mTvWithdraw;
+    private TextView mTitle;
+    private TextView mMoney;
+    private TextView mHostry;
+    private TextView mToday;
+    private ImageView mDown;
+
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -75,6 +84,7 @@ public class MainActivity extends BaseActivity implements View.OnClickListener {
     @Override
     public void initListener() {
         mTvWithdraw.setOnClickListener(this);
+        mDown.setOnClickListener(this);
         if (BuildConfig.DEBUG)
             mTvWithdraw.setOnLongClickListener(new View.OnLongClickListener() {
 
@@ -90,12 +100,20 @@ public class MainActivity extends BaseActivity implements View.OnClickListener {
 
     @Override
     public void initData() {
-        NetManager.get(Url.PUBLISH_TASKS, null, getApplicationContext(), new SheepCallback<List<TaskPublish>>(this) {
+        HashMap<String, String> map = new HashMap<>();
+        map.put("wx_open_id", SpUtils.getOpenId(this));
+        NetManager.get(Url.PUBLISH_TASKS, map, getApplicationContext(), new SheepCallback<List<TaskPublish>>(this) {
             @Override
             public void success(List<TaskPublish> tasks) {
                 mAdapter.setData(tasks);
                 mAdapter.notifyDataSetChanged();
-                mRecyclerView.refreshComplete();
+            }
+        });
+        NetManager.get(Url.USER_INFO, map, getApplicationContext(), new SheepCallback<User>(this) {
+            @Override
+            public void success(User user) {
+                mMoney.setText(user.getMoney().getBalance());
+                mToday.setText(String.format("今日收入:%s", user.getMoney().getToday()));
             }
         });
     }
@@ -114,11 +132,11 @@ public class MainActivity extends BaseActivity implements View.OnClickListener {
         layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
         mRecyclerView.setLayoutManager(layoutManager);
         mAdapter = new TaskAdapter(new ArrayList<TaskPublish>(), MainActivity.this);
-        mAdapter.setClickCallBack(new TaskAdapter.ItemClickCallBack<String>() {
+        mAdapter.setClickCallBack(new TaskAdapter.ItemClickCallBack<TaskPublish>() {
             @Override
-            public void onItemClick(String pos) {
+            public void onItemClick(TaskPublish pos) {
                 Intent intent = new Intent(MainActivity.this, DownloadActivity.class);
-                intent.putExtra("data", pos);
+                intent.putExtra("data", pos.getTask().getDownLoadUrl());
                 startActivity(intent);
             }
         });
@@ -127,6 +145,7 @@ public class MainActivity extends BaseActivity implements View.OnClickListener {
             @Override
             public void onRefresh() {
                 initData();
+                mRecyclerView.refreshComplete();
             }
 
             @Override
@@ -151,6 +170,11 @@ public class MainActivity extends BaseActivity implements View.OnClickListener {
 
     private void findViewHead(View head) {
         mTvWithdraw = (TextView) head.findViewById(R.id.tv_withdraw);
+        mTitle = (TextView) head.findViewById(R.id.title);
+        mMoney = (TextView) head.findViewById(R.id.money);
+        mHostry = (TextView) head.findViewById(R.id.hostry);
+        mToday = (TextView) head.findViewById(R.id.today);
+        mDown = head.findViewById(R.id.img_down);
     }
 
     private void findviews() {
@@ -180,16 +204,23 @@ public class MainActivity extends BaseActivity implements View.OnClickListener {
 
     @Override
     public void onClick(View v) {
+        Intent intent;
         switch (v.getId()) {
             case R.id.tv_withdraw:
-                Intent intent;
                 if (SpUtils.isLogin(getApplicationContext())) {
                     intent = new Intent(MainActivity.this, UserCenterActivity.class);
                 } else {
                     intent = new Intent(MainActivity.this, LoginActivity.class);
                 }
                 startActivity(intent);
-
+                break;
+            case R.id.img_down:
+                if (SpUtils.isLogin(getApplicationContext())) {
+                    intent = new Intent(MainActivity.this, UserCenterActivity.class);
+                } else {
+                    intent = new Intent(MainActivity.this, DownloadActivity.class);
+                }
+                startActivity(intent);
                 break;
         }
     }

+ 121 - 0
app/src/main/java/com/jiuyan/sheep_children/page/TaskRecordActivity.java

@@ -0,0 +1,121 @@
+package com.jiuyan.sheep_children.page;
+
+import android.text.TextUtils;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.BaseAdapter;
+import android.widget.ImageView;
+import android.widget.ListView;
+import android.widget.TextView;
+
+import com.bumptech.glide.Glide;
+import com.jiuyan.sheep_children.R;
+import com.jiuyan.sheep_children.base.BaseActivity;
+import com.jiuyan.sheep_children.net.NetManager;
+import com.jiuyan.sheep_children.net.SheepCallback;
+import com.jiuyan.sheep_children.net.Url;
+import com.jiuyan.sheep_children.page.entry.Commit;
+import com.jiuyan.sheep_children.page.entry.TaskPublish;
+import com.jiuyan.sheep_children.utils.SpUtils;
+import com.zhy.adapter.abslistview.CommonAdapter;
+import com.zhy.adapter.abslistview.ViewHolder;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * Created by kemllor on 2017/12/26.
+ */
+
+public class TaskRecordActivity extends BaseActivity {
+    private ListView mLvTask;
+    private TextView mTvTitle;
+    private View mBack;
+    private CommonAdapter mAdapter;
+
+    @Override
+    protected int getLayoutId() {
+        return R.layout.task_record_activity;
+    }
+
+    @Override
+    public void initView() {
+        mLvTask = findViewById(R.id.lv_task);
+        mTvTitle = findViewById(R.id.tv_title);
+        mBack = findViewById(R.id.img_back);
+
+    }
+
+    @Override
+    public void initListener() {
+        mBack.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                finish();
+            }
+        });
+    }
+
+    @Override
+    public void initData() {
+        mTvTitle.setText("任务记录");
+
+        HashMap<String, String> map = new HashMap<>();
+        map.put("wx_open_id", SpUtils.getOpenId(this));
+        NetManager.get(Url.USER_COMMIT, map, getApplicationContext(), new SheepCallback<List<Commit>>(this) {
+            @Override
+            public void success(List<Commit> commits) {
+                if (mAdapter == null)
+                    mLvTask.setAdapter(mAdapter = new CommonAdapter<Commit>(TaskRecordActivity.this, R.layout.task_record_item, commits) {
+                        @Override
+                        protected void convert(ViewHolder viewHolder, Commit item, int position) {
+                            String[] tmp1 = item.getCheckTime().split("-");
+                            String[] tmp2 = tmp1[2].split(" ")[1].split(":");
+                            String time = tmp1[1] + "/" + tmp1[2].split(" ")[0] + "\n" + tmp2[0] + ":" + tmp2[1];
+                            viewHolder.setText(R.id.tv_time, time);
+                            getState(viewHolder.<TextView>getView(R.id.tv_state), item.getStatus());
+                            viewHolder.setText(R.id.tv_title, "完成试玩->" + item.getTask().getTitle());
+                            Glide.with(TaskRecordActivity.this)
+                                    .load(item.getTask().getIcon())
+                                    .placeholder(R.drawable.icon)
+                                    .dontAnimate()
+                                    .into(viewHolder.<ImageView>getView(R.id.img_icon));
+                            viewHolder.setText(R.id.tv_money, item.getTask().getPrice());
+                            TextView failed = viewHolder.getView(R.id.tv_failed);
+                            if (!TextUtils.isEmpty(item.getFailDesc())) {
+                                failed.setVisibility(View.VISIBLE);
+                                failed.setText(item.getFailDesc());
+                            }
+                        }
+
+                        private void getState(TextView view, int state) {
+                            switch (state) {
+                                case 1:
+                                    view.setText("审核中");
+                                    view.setBackgroundResource(R.color.theme);
+                                    break;
+                                case 2:
+                                    view.setText("已审核");
+                                    view.setBackgroundResource(R.color.green);
+                                    break;
+                                case 3:
+                                    view.setText("未通过");
+                                    view.setBackgroundResource(R.color.red);
+                                    break;
+                            }
+                        }
+                    });
+                else {
+                    mAdapter.notifyDataSetChanged();
+                }
+            }
+
+
+        });
+    }
+
+}

+ 19 - 2
app/src/main/java/com/jiuyan/sheep_children/page/UserCenterActivity.java

@@ -9,10 +9,17 @@ import android.view.View;
 import android.widget.ImageView;
 import android.widget.TextView;
 
+import com.bumptech.glide.Glide;
 import com.jiuyan.sheep_children.R;
 import com.jiuyan.sheep_children.base.BaseActivity;
+import com.jiuyan.sheep_children.net.NetManager;
+import com.jiuyan.sheep_children.net.SheepCallback;
+import com.jiuyan.sheep_children.net.Url;
+import com.jiuyan.sheep_children.page.entry.User;
 import com.jiuyan.sheep_children.utils.SpUtils;
 
+import java.util.HashMap;
+
 /**
  * Created by kemllor on 2017/12/13.
  */
@@ -50,7 +57,17 @@ public class UserCenterActivity extends BaseActivity implements View.OnClickList
     @Override
     public void initData() {
         mTitle.setText("个人中心");
-
+        HashMap<String, String> map = new HashMap<>();
+        map.put("wx_open_id", SpUtils.getOpenId(this));
+        NetManager.get(Url.USER_INFO, map, getApplicationContext(), new SheepCallback<User>(this) {
+            @Override
+            public void success(User user) {
+                mTvNick.setText(user.getNickName());
+                mTvLevel.setText(user.getWxId());
+                mTvMoney.setText(String.format("账户余额:%s", user.getMoney().getBalance()));
+                Glide.with(getApplicationContext()).load(user.getIcon()).placeholder(R.drawable.icon).dontAnimate().into(mImgIcon);
+            }
+        });
     }
 
     @Override
@@ -88,7 +105,7 @@ public class UserCenterActivity extends BaseActivity implements View.OnClickList
                 break;
             case R.id.tv_task:
                 if (checkLogin()) {
-                    intent = new Intent(UserCenterActivity.this, WithdrawActivity.class);
+                    intent = new Intent(UserCenterActivity.this, TaskRecordActivity.class);
                     startActivity(intent);
                 } else {
                     toLogin();

+ 6 - 2
app/src/main/java/com/jiuyan/sheep_children/page/adapter/TaskAdapter.java

@@ -58,13 +58,17 @@ public class TaskAdapter extends RecyclerView.Adapter<TaskAdapter.ViewHolder> {
         viewHolder.mTvCount.setText(datas.get(position).getSurplusCount() + "/" + datas.get(position).getTotalCouont());
         viewHolder.mTvDesc.setText(datas.get(position).getTask().getDesc());
         viewHolder.mTvMoney.setText(datas.get(position).getTask().getPrice());
-        Glide.with(mActivity).load(datas.get(position).getTask().getIcon()).placeholder(R.drawable.sheep).into(viewHolder.mImgIcon);
+        Glide.with(mActivity)
+                .load(datas.get(position).getTask().getIcon())
+                .placeholder(R.drawable.sheep)
+                .dontAnimate()
+                .into(viewHolder.mImgIcon);
         viewHolder.mRootView.setOnClickListener(
                 new View.OnClickListener() {
                     @Override
                     public void onClick(View v) {
                         if (clickCallBack != null) {
-                            clickCallBack.onItemClick(null);
+                            clickCallBack.onItemClick(datas.get(position));
                         }
                     }
                 }

+ 95 - 0
app/src/main/java/com/jiuyan/sheep_children/page/entry/Commit.java

@@ -0,0 +1,95 @@
+package com.jiuyan.sheep_children.page.entry;
+
+import java.io.Serializable;
+
+/**
+ * Created by kemllor on 2017/12/26.
+ */
+
+public class Commit implements Serializable {
+
+    /**
+     * Id : 3
+     * Task : {"Id":1,"Type":1,"DownLoadUrl":"http://img3.redocn.com/20120602/Redocn_2012060202412086.jpg","Guide":"asd","Desc":"asdasd","Icon":"http://img3.redocn.com/20120602/Redocn_2012060202412086.jpg","Title":"asds","Price":"5.00","Pkg":"com.kfzs.duanduan"}
+     * TaskImg : http://element-cn.eleme.io/static/hamburger.50e4091.png
+     * TaskPkg : asdasd
+     * Status : 1
+     * CreateTime : asdasd
+     * CheckTime : 2017-12-19 11:32:55
+     * FailDesc :
+     */
+
+    private int Id;
+    private Task Task;
+    private String TaskImg;
+    private String TaskPkg;
+    private int Status;
+    private String CreateTime;
+    private String CheckTime;
+    private String FailDesc;
+
+    public int getId() {
+        return Id;
+    }
+
+    public void setId(int Id) {
+        this.Id = Id;
+    }
+
+    public Task getTask() {
+        return Task;
+    }
+
+    public void setTask(Task Task) {
+        this.Task = Task;
+    }
+
+    public String getTaskImg() {
+        return TaskImg;
+    }
+
+    public void setTaskImg(String TaskImg) {
+        this.TaskImg = TaskImg;
+    }
+
+    public String getTaskPkg() {
+        return TaskPkg;
+    }
+
+    public void setTaskPkg(String TaskPkg) {
+        this.TaskPkg = TaskPkg;
+    }
+
+    public int getStatus() {
+        return Status;
+    }
+
+    public void setStatus(int Status) {
+        this.Status = Status;
+    }
+
+    public String getCreateTime() {
+        return CreateTime;
+    }
+
+    public void setCreateTime(String CreateTime) {
+        this.CreateTime = CreateTime;
+    }
+
+    public String getCheckTime() {
+        return CheckTime;
+    }
+
+    public void setCheckTime(String CheckTime) {
+        this.CheckTime = CheckTime;
+    }
+
+    public String getFailDesc() {
+        return FailDesc;
+    }
+
+    public void setFailDesc(String FailDesc) {
+        this.FailDesc = FailDesc;
+    }
+
+}

+ 43 - 0
app/src/main/java/com/jiuyan/sheep_children/page/entry/Money.java

@@ -0,0 +1,43 @@
+package com.jiuyan.sheep_children.page.entry;
+
+import java.io.Serializable;
+
+/**
+ * Created by kemllor on 2017/12/26.
+ */
+
+public class Money implements Serializable{
+    /**
+     * Hostroy : 30
+     * Today : 5
+     * Balance : 35
+     */
+
+    private String Hostroy;
+    private String Today;
+    private String Balance;
+
+    public String getHostroy() {
+        return Hostroy;
+    }
+
+    public void setHostroy(String Hostroy) {
+        this.Hostroy = Hostroy;
+    }
+
+    public String getToday() {
+        return Today;
+    }
+
+    public void setToday(String Today) {
+        this.Today = Today;
+    }
+
+    public String getBalance() {
+        return Balance;
+    }
+
+    public void setBalance(String Balance) {
+        this.Balance = Balance;
+    }
+}

+ 87 - 0
app/src/main/java/com/jiuyan/sheep_children/page/entry/User.java

@@ -0,0 +1,87 @@
+package com.jiuyan.sheep_children.page.entry;
+
+import java.io.Serializable;
+
+/**
+ * Created by kemllor on 2017/12/26.
+ */
+
+public class User implements Serializable {
+
+
+    /**
+     * OpenId : abcabc
+     * UnionId :
+     * Icon :
+     * NickName :
+     * Token :
+     * WxId : aadwasd
+     * Money : {"Hostroy":"30","Today":"5","Balance":"35"}
+     */
+
+    private String OpenId;
+    private String UnionId;
+    private String Icon;
+    private String NickName;
+    private String Token;
+    private String WxId;
+    private Money Money;
+
+    public String getOpenId() {
+        return OpenId;
+    }
+
+    public void setOpenId(String OpenId) {
+        this.OpenId = OpenId;
+    }
+
+    public String getUnionId() {
+        return UnionId;
+    }
+
+    public void setUnionId(String UnionId) {
+        this.UnionId = UnionId;
+    }
+
+    public String getIcon() {
+        return Icon;
+    }
+
+    public void setIcon(String Icon) {
+        this.Icon = Icon;
+    }
+
+    public String getNickName() {
+        return NickName;
+    }
+
+    public void setNickName(String NickName) {
+        this.NickName = NickName;
+    }
+
+    public String getToken() {
+        return Token;
+    }
+
+    public void setToken(String Token) {
+        this.Token = Token;
+    }
+
+    public String getWxId() {
+        return WxId;
+    }
+
+    public void setWxId(String WxId) {
+        this.WxId = WxId;
+    }
+
+    public Money getMoney() {
+        return Money;
+    }
+
+    public void setMoney(Money Money) {
+        this.Money = Money;
+    }
+
+
+}

+ 7 - 3
app/src/main/res/layout/float_window.xml

@@ -7,7 +7,7 @@
     <LinearLayout
         android:id="@+id/ll_info_left"
         android:layout_width="110dp"
-        android:layout_height="50dp"
+        android:layout_height="40dp"
         android:layout_gravity="center_vertical"
         android:background="@drawable/floate_back"
         android:gravity="center_vertical"
@@ -17,12 +17,14 @@
         <ImageView
             android:id="@+id/img_commit_left"
             android:layout_width="40dp"
+            android:padding="5dp"
             android:layout_height="40dp"
             android:layout_marginLeft="10dp"
             android:src="@drawable/task"/>
 
         <ImageView
             android:id="@+id/img_open_left"
+            android:padding="5dp"
             android:layout_width="40dp"
             android:layout_height="40dp"
             android:layout_marginLeft="10dp"
@@ -33,14 +35,14 @@
     <ImageView
         android:id="@+id/floate_icon"
         android:layout_width="40dp"
-        android:layout_height="50dp"
+        android:layout_height="40dp"
         android:scaleType="fitCenter"
         android:src="@drawable/sheep"/>
 
     <LinearLayout
         android:id="@+id/ll_info_right"
         android:layout_width="110dp"
-        android:layout_height="50dp"
+        android:layout_height="40dp"
         android:layout_gravity="center_vertical"
         android:background="@drawable/floate_back"
         android:gravity="center_vertical"
@@ -51,10 +53,12 @@
             android:id="@+id/img_commit_right"
             android:layout_width="40dp"
             android:layout_height="40dp"
+            android:padding="5dp"
             android:layout_marginLeft="10dp"
             android:src="@drawable/task"/>
 
         <ImageView
+            android:padding="5dp"
             android:id="@+id/img_open_right"
             android:layout_width="40dp"
             android:layout_height="40dp"

+ 14 - 4
app/src/main/res/layout/task_head.xml

@@ -6,7 +6,7 @@
 
     <RelativeLayout
         android:layout_width="match_parent"
-        android:layout_height="130dp"
+        android:layout_height="110dp"
         android:background="@color/theme"
         >
 
@@ -14,13 +14,23 @@
             android:id="@+id/tv_withdraw"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
+            android:layout_alignParentBottom="true"
             android:layout_alignParentRight="true"
-            android:layout_centerVertical="true"
-            android:layout_margin="5dp"
+            android:layout_marginBottom="10dp"
+            android:layout_marginRight="5dp"
             android:text="提现"
             android:textColor="@color/white"
             android:textSize="18sp"/>
 
+        <ImageView
+            android:id="@+id/img_down"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignParentRight="true"
+            android:layout_marginTop="5dp"
+            android:padding="5dp"
+            android:src="@android:drawable/stat_sys_download"/>
+
         <TextView
             android:id="@+id/title"
             android:layout_width="wrap_content"
@@ -37,7 +47,7 @@
             android:layout_height="wrap_content"
             android:layout_below="@id/title"
             android:layout_centerHorizontal="true"
-            android:layout_marginTop="20dp"
+            android:layout_marginTop="10dp"
             android:text="250.0"
             android:textColor="@color/white_red"
             android:textSize="30dp"

+ 57 - 47
app/src/main/res/layout/task_item.xml

@@ -6,73 +6,83 @@
 
     <RelativeLayout
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_margin="5dp">
+        android:layout_height="60dp"
+        android:layout_margin="5dp"
+        android:background="@color/backgroud">
 
         <ImageView
             android:id="@+id/img_icon"
-            android:layout_width="60dp"
-            android:layout_height="60dp"
+            android:layout_width="55dp"
+            android:layout_height="55dp"
             android:layout_centerVertical="true"
             android:src="@drawable/icon"/>
 
-        <TextView
-            android:id="@+id/tv_title"
+        <LinearLayout
+            android:layout_marginLeft="10dp"
             android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginLeft="5dp"
-            android:layout_marginTop="3dp"
+            android:layout_height="match_parent"
             android:layout_toRightOf="@id/img_icon"
-            android:text="title"
-            android:textColor="@color/theme"
-            android:textSize="20sp"/>
+            android:orientation="vertical">
 
-        <TextView
-            android:id="@+id/tv_desc"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_below="@id/tv_title"
-            android:layout_marginLeft="5dp"
-            android:layout_marginTop="3dp"
-            android:layout_toRightOf="@id/img_icon"
-            android:text="下载游戏,试玩到5级,截图上报,完成任务"
-            android:textColor="@color/black_dark"
-            android:textSize="12sp"/>
+            <TextView
+                android:id="@+id/tv_title"
+                android:layout_width="wrap_content"
+                android:layout_height="0dp"
+                android:layout_marginLeft="5dp"
+                android:layout_weight="1"
+                android:gravity="center_vertical"
+                android:text="title"
+                android:textColor="@color/theme"
+                android:textSize="14sp"/>
 
-        <TextView
-            android:id="@+id/tv_count"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_below="@id/tv_desc"
-            android:layout_marginLeft="5dp"
-            android:layout_marginTop="3dp"
-            android:layout_toRightOf="@id/img_icon"
-            android:text="250/250"
-            android:textColor="@color/black_dark"
-            android:textSize="12sp"/>
+            <TextView
+                android:id="@+id/tv_desc"
+                android:layout_width="wrap_content"
+                android:layout_height="0dp"
+                android:layout_marginLeft="5dp"
+                android:layout_weight="1"
+                android:gravity="center_vertical"
+                android:text="下载游戏,试玩到5级,截图上报,完成任务"
+                android:textColor="@color/black_dark"
+                android:textSize="12sp"/>
+
+            <TextView
+                android:id="@+id/tv_count"
+                android:layout_width="wrap_content"
+                android:layout_height="0dp"
+                android:layout_marginLeft="5dp"
+                android:layout_weight="1"
+                android:gravity="center_vertical"
+                android:text="250/250"
+                android:textColor="@color/black_dark"
+                android:textSize="12sp"/>
+
+        </LinearLayout>
 
-        <TextView
-            android:id="@+id/tv_guide"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_below="@id/tv_count"
-            android:layout_marginLeft="5dp"
-            android:layout_marginTop="3dp"
-            android:layout_toRightOf="@id/img_icon"
-            android:text="任务攻略"
-            android:textColor="@color/theme"
-            android:textSize="12sp"/>
 
         <TextView
+            android:layout_alignTop="@id/img_icon"
             android:id="@+id/tv_money"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_alignParentRight="true"
-            android:layout_centerVertical="true"
             android:layout_marginRight="5dp"
             android:text="5.00"
             android:textColor="@color/red"
-            android:textSize="25sp"/>
+            android:textSize="18sp"/>
+        <TextView
+            android:layout_alignParentRight="true"
+            android:layout_alignParentBottom="true"
+            android:id="@+id/tv_guide"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:gravity="center_vertical"
+            android:text="任务攻略 >>"
+            android:textColor="@color/theme"
+            android:layout_marginRight="5dp"
+            android:layout_marginBottom="5dp"
+            android:textSize="12sp"/>
 
     </RelativeLayout>
 

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

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:orientation="vertical">
+
+    <include
+        layout="@layout/title"/>
+
+    <ListView
+        android:id="@+id/lv_task"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content">
+    </ListView>
+
+</LinearLayout>

+ 92 - 0
app/src/main/res/layout/task_record_item.xml

@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="wrap_content"
+              android:orientation="vertical">
+
+
+    <RelativeLayout
+        android:layout_width="match_parent"
+        android:layout_height="50dp"
+        android:layout_marginLeft="5dp"
+        android:layout_marginRight="5dp"
+        android:layout_marginTop="10dp"
+        android:background="@color/backgroud"
+        >
+
+        <TextView
+            android:id="@+id/tv_time"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="3dp"
+            android:gravity="center"
+            android:textColor="@color/black_dark"
+            android:textSize="14sp"/>
+
+
+        <ImageView
+            android:id="@+id/img_icon"
+            android:layout_width="45dp"
+            android:layout_height="45dp"
+            android:layout_centerVertical="true"
+            android:layout_marginLeft="25dp"
+            android:layout_toRightOf="@id/tv_time"
+            android:scaleType="centerInside"
+            />
+
+        <TextView
+            android:id="@+id/tv_money"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignTop="@id/img_icon"
+            android:layout_marginLeft="5dp"
+            android:layout_marginTop="2dp"
+            android:layout_toRightOf="@id/img_icon"
+            android:textColor="@color/theme"
+            android:textSize="14sp"/>
+
+        <TextView
+            android:id="@+id/tv_title"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_alignBottom="@id/img_icon"
+            android:layout_marginBottom="2dp"
+            android:layout_marginLeft="5dp"
+            android:layout_toRightOf="@id/img_icon"
+            android:textColor="@color/black_dark"
+            android:textSize="12sp"/>
+
+
+        <LinearLayout
+            android:layout_width="wrap_content"
+            android:layout_height="match_parent"
+            android:layout_alignParentRight="true"
+            android:gravity="center"
+            android:orientation="vertical"
+            android:paddingRight="3dp">
+
+            <TextView
+                android:id="@+id/tv_state"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:background="@color/theme"
+                android:padding="3dp"
+                android:textColor="@color/white"
+                android:textSize="12dp"/>
+
+            <TextView
+                android:id="@+id/tv_failed"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_alignParentRight="true"
+                android:layout_marginTop="5dp"
+                android:textColor="@color/black_dark"
+                android:visibility="gone"/>
+
+        </LinearLayout>
+
+
+    </RelativeLayout>
+
+</LinearLayout>

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

@@ -8,9 +8,10 @@
     <ImageView
         android:id="@+id/img_back"
         android:layout_width="25dp"
+        android:padding="5dp"
+        android:layout_marginLeft="5dp"
         android:layout_height="20dp"
         android:layout_centerVertical="true"
-        android:paddingLeft="5dp"
         android:src="@drawable/back"/>
 
     <TextView
@@ -20,6 +21,6 @@
         android:layout_centerInParent="true"
         android:text="title"
         android:textColor="@color/white"
-        android:textSize="20sp"/>
+        android:textSize="18sp"/>
 
 </RelativeLayout>

+ 2 - 0
app/src/main/res/values/colors.xml

@@ -8,5 +8,7 @@
     <color name="white">#ffffff</color>
     <color name="white_red">#fffbf9</color>
     <color name="black_dark">#363636</color>
+    <color name="backgroud">#f7f0ee</color>
+    <color name="green">#358400</color>
     <color name="red">#f00</color>
 </resources>

+ 1 - 1
app/src/main/res/values/strings.xml

@@ -3,6 +3,6 @@
     <string name="pause">暂停</string>
     <string name="start_download">开始下载</string>
     <string name="resume">继续</string>
-    <string name="done">下载完成</string>
+    <string name="done">安装</string>
 
 </resources>