Commit 204c4c046cd85b813d9677bdd803c3197052632f
1 parent
747e6591
处理 评论页面刷新问题 以及 聊天页面的 bug处理
Showing
19 changed files
with
217 additions
and
19 deletions
app/build.gradle
| @@ -86,4 +86,5 @@ dependencies { | @@ -86,4 +86,5 @@ dependencies { | ||
| 86 | compile 'com.squareup.okhttp3:okhttp-ws:3.2.0' | 86 | compile 'com.squareup.okhttp3:okhttp-ws:3.2.0' |
| 87 | compile 'com.squareup.okhttp3:logging-interceptor:3.2.0' | 87 | compile 'com.squareup.okhttp3:logging-interceptor:3.2.0' |
| 88 | compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.4' | 88 | compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.4' |
| 89 | + | ||
| 89 | } | 90 | } |
app/src/main/java/com/cnlive/gundam/main/presenter/VodDetailPresenter.java
| @@ -30,7 +30,7 @@ public class VodDetailPresenter { | @@ -30,7 +30,7 @@ public class VodDetailPresenter { | ||
| 30 | 30 | ||
| 31 | private CommentUtil commentUtil = new CommentUtil(); | 31 | private CommentUtil commentUtil = new CommentUtil(); |
| 32 | 32 | ||
| 33 | - private int pageCount = 2; | 33 | + private int pageCount = 10; |
| 34 | CommentDetailsFragment commentFragment; | 34 | CommentDetailsFragment commentFragment; |
| 35 | 35 | ||
| 36 | public VodDetailPresenter(CommentDetailsFragment commentFragment) { | 36 | public VodDetailPresenter(CommentDetailsFragment commentFragment) { |
app/src/main/java/com/cnlive/gundam/main/ui/widget/GlideCircleTransform.java
0 → 100644
| 1 | +package com.cnlive.gundam.main.ui.widget; | ||
| 2 | + | ||
| 3 | +import android.content.Context; | ||
| 4 | +import android.graphics.Bitmap; | ||
| 5 | +import android.graphics.BitmapShader; | ||
| 6 | +import android.graphics.Canvas; | ||
| 7 | +import android.graphics.Paint; | ||
| 8 | + | ||
| 9 | +import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; | ||
| 10 | +import com.bumptech.glide.load.resource.bitmap.BitmapTransformation; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * 创建:wukuiqing | ||
| 14 | + * <p> | ||
| 15 | + * 时间:2017/7/13 | ||
| 16 | + * <p> | ||
| 17 | + * 描述: | ||
| 18 | + */ | ||
| 19 | + | ||
| 20 | +//圆形图片 | ||
| 21 | +public class GlideCircleTransform extends BitmapTransformation { | ||
| 22 | + public GlideCircleTransform(Context context) { | ||
| 23 | + super(context); | ||
| 24 | + } | ||
| 25 | + | ||
| 26 | + @Override protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) { | ||
| 27 | + return circleCrop(pool, toTransform); | ||
| 28 | + } | ||
| 29 | + | ||
| 30 | + private static Bitmap circleCrop(BitmapPool pool, Bitmap source) { | ||
| 31 | + if (source == null) return null; | ||
| 32 | + | ||
| 33 | + int size = Math.min(source.getWidth(), source.getHeight()); | ||
| 34 | + int x = (source.getWidth() - size) / 2; | ||
| 35 | + int y = (source.getHeight() - size) / 2; | ||
| 36 | + | ||
| 37 | + | ||
| 38 | + Bitmap squared = Bitmap.createBitmap(source, x, y, size, size); | ||
| 39 | + | ||
| 40 | + Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888); | ||
| 41 | + if (result == null) { | ||
| 42 | + result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888); | ||
| 43 | + } | ||
| 44 | + | ||
| 45 | + Canvas canvas = new Canvas(result); | ||
| 46 | + Paint paint = new Paint(); | ||
| 47 | + paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP)); | ||
| 48 | + paint.setAntiAlias(true); | ||
| 49 | + float r = size / 2f; | ||
| 50 | + canvas.drawCircle(r, r, r, paint); | ||
| 51 | + return result; | ||
| 52 | + } | ||
| 53 | + | ||
| 54 | + @Override public String getId() { | ||
| 55 | + return getClass().getName(); | ||
| 56 | + } | ||
| 57 | +} | ||
| 58 | + |
app/src/main/java/com/cnlive/gundam/video/activity/PlayerActivity.java
| @@ -104,6 +104,6 @@ public class PlayerActivity extends AppCompatActivity { | @@ -104,6 +104,6 @@ public class PlayerActivity extends AppCompatActivity { | ||
| 104 | @Override | 104 | @Override |
| 105 | protected void onDestroy() { | 105 | protected void onDestroy() { |
| 106 | super.onDestroy(); | 106 | super.onDestroy(); |
| 107 | - EventBus.getDefault().unregister(this); | 107 | + |
| 108 | } | 108 | } |
| 109 | } | 109 | } |
app/src/main/java/com/cnlive/gundam/video/adpter/CommonAdapter.java
| @@ -63,6 +63,7 @@ public class CommonAdapter<T> extends BaseAdapter { | @@ -63,6 +63,7 @@ public class CommonAdapter<T> extends BaseAdapter { | ||
| 63 | binding = DataBindingUtil.getBinding(convertView); | 63 | binding = DataBindingUtil.getBinding(convertView); |
| 64 | } | 64 | } |
| 65 | binding.setVariable(variableId, mDataList.get(position)); | 65 | binding.setVariable(variableId, mDataList.get(position)); |
| 66 | + | ||
| 66 | MessageContent user = (MessageContent) mDataList.get(position); | 67 | MessageContent user = (MessageContent) mDataList.get(position); |
| 67 | 68 | ||
| 68 | if(((MessageContent) mDataList.get(position)).isSendInfo()){ | 69 | if(((MessageContent) mDataList.get(position)).isSendInfo()){ |
app/src/main/java/com/cnlive/gundam/video/fragment/CommentDetailsFragment.java
| @@ -238,9 +238,10 @@ public class CommentDetailsFragment extends Fragment implements VodDetialView { | @@ -238,9 +238,10 @@ public class CommentDetailsFragment extends Fragment implements VodDetialView { | ||
| 238 | if (isLoad) { | 238 | if (isLoad) { |
| 239 | binding.srvVodDetail.stopLoadingMore(); | 239 | binding.srvVodDetail.stopLoadingMore(); |
| 240 | isLoad = false; | 240 | isLoad = false; |
| 241 | - } else { | ||
| 242 | - binding.srvVodDetail.complete(); | 241 | + } |
| 243 | 242 | ||
| 243 | + if (binding.srvVodDetail.isRefreshing()) { | ||
| 244 | + binding.srvVodDetail.complete(); | ||
| 244 | } | 245 | } |
| 245 | if (mDatas == null) { | 246 | if (mDatas == null) { |
| 246 | binding.srvVodDetail.onNoMore("快来抢沙发喽~"); | 247 | binding.srvVodDetail.onNoMore("快来抢沙发喽~"); |
app/src/main/java/com/cnlive/gundam/video/fragment/chat/ChatRoomFragment.java
| @@ -8,10 +8,10 @@ import android.os.Bundle; | @@ -8,10 +8,10 @@ import android.os.Bundle; | ||
| 8 | import android.support.annotation.NonNull; | 8 | import android.support.annotation.NonNull; |
| 9 | import android.support.annotation.Nullable; | 9 | import android.support.annotation.Nullable; |
| 10 | import android.support.v4.app.Fragment; | 10 | import android.support.v4.app.Fragment; |
| 11 | +import android.support.v4.app.FragmentActivity; | ||
| 11 | import android.support.v4.content.ContextCompat; | 12 | import android.support.v4.content.ContextCompat; |
| 12 | import android.support.v7.widget.GridLayoutManager; | 13 | import android.support.v7.widget.GridLayoutManager; |
| 13 | import android.support.v7.widget.SwitchCompat; | 14 | import android.support.v7.widget.SwitchCompat; |
| 14 | -import android.util.Log; | ||
| 15 | import android.view.LayoutInflater; | 15 | import android.view.LayoutInflater; |
| 16 | import android.view.View; | 16 | import android.view.View; |
| 17 | import android.view.ViewGroup; | 17 | import android.view.ViewGroup; |
| @@ -23,12 +23,14 @@ import com.cnlive.gundam.BR; | @@ -23,12 +23,14 @@ import com.cnlive.gundam.BR; | ||
| 23 | import com.cnlive.gundam.R; | 23 | import com.cnlive.gundam.R; |
| 24 | import com.cnlive.gundam.databinding.FragmentChatBinding; | 24 | import com.cnlive.gundam.databinding.FragmentChatBinding; |
| 25 | import com.cnlive.gundam.main.model.MsgEvent; | 25 | import com.cnlive.gundam.main.model.MsgEvent; |
| 26 | +import com.cnlive.gundam.main.ui.widget.GlideCircleTransform; | ||
| 26 | import com.cnlive.gundam.main.ui.widget.RecyclerSpace; | 27 | import com.cnlive.gundam.main.ui.widget.RecyclerSpace; |
| 27 | import com.cnlive.gundam.main.utils.SharedPreferencesHelper; | 28 | import com.cnlive.gundam.main.utils.SharedPreferencesHelper; |
| 28 | import com.cnlive.gundam.user.auth.UserService; | 29 | import com.cnlive.gundam.user.auth.UserService; |
| 29 | import com.cnlive.gundam.user.model.User; | 30 | import com.cnlive.gundam.user.model.User; |
| 30 | import com.cnlive.gundam.user.util.InputUtil; | 31 | import com.cnlive.gundam.user.util.InputUtil; |
| 31 | import com.cnlive.gundam.user.util.ToastUtil; | 32 | import com.cnlive.gundam.user.util.ToastUtil; |
| 33 | +import com.cnlive.gundam.video.activity.PlayerActivity; | ||
| 32 | import com.cnlive.gundam.video.adpter.CommonAdapter; | 34 | import com.cnlive.gundam.video.adpter.CommonAdapter; |
| 33 | import com.cnlive.gundam.video.adpter.GiftAdapter; | 35 | import com.cnlive.gundam.video.adpter.GiftAdapter; |
| 34 | import com.cnlive.gundam.video.barrage.BarrageBaseMessage; | 36 | import com.cnlive.gundam.video.barrage.BarrageBaseMessage; |
| @@ -38,7 +40,6 @@ import com.cnlive.gundam.video.model.MessageContent; | @@ -38,7 +40,6 @@ import com.cnlive.gundam.video.model.MessageContent; | ||
| 38 | import com.cnlive.libs.util.chat.ChatUtil; | 40 | import com.cnlive.libs.util.chat.ChatUtil; |
| 39 | import com.cnlive.libs.util.chat.base.IChat; | 41 | import com.cnlive.libs.util.chat.base.IChat; |
| 40 | import com.cnlive.libs.util.chat.model.CNUserInfo; | 42 | import com.cnlive.libs.util.chat.model.CNUserInfo; |
| 41 | -import com.cnlive.libs.util.data.okhttpUtil.utils.L; | ||
| 42 | import com.cnlive.libs.video.barrage.BarrageLayout; | 43 | import com.cnlive.libs.video.barrage.BarrageLayout; |
| 43 | 44 | ||
| 44 | import org.greenrobot.eventbus.EventBus; | 45 | import org.greenrobot.eventbus.EventBus; |
| @@ -86,11 +87,14 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | @@ -86,11 +87,14 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | ||
| 86 | 87 | ||
| 87 | } | 88 | } |
| 88 | 89 | ||
| 90 | + String faceurl; | ||
| 91 | + | ||
| 89 | @Override | 92 | @Override |
| 90 | public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { | 93 | public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { |
| 91 | super.onViewCreated(view, savedInstanceState); | 94 | super.onViewCreated(view, savedInstanceState); |
| 92 | initListener(); | 95 | initListener(); |
| 93 | EventBus.getDefault().register(this); | 96 | EventBus.getDefault().register(this); |
| 97 | + faceurl = UserService.getInstance(getActivity()).getActiveAccountInfo().getFaceurl(); | ||
| 94 | initDate(); | 98 | initDate(); |
| 95 | initGift(); | 99 | initGift(); |
| 96 | int checkCallPhonePermission = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_PHONE_STATE); | 100 | int checkCallPhonePermission = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_PHONE_STATE); |
| @@ -142,12 +146,12 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | @@ -142,12 +146,12 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | ||
| 142 | 146 | ||
| 143 | @BindingAdapter({"imageUrl"}) | 147 | @BindingAdapter({"imageUrl"}) |
| 144 | public static void loadImage(ImageView imageView, String url) { | 148 | public static void loadImage(ImageView imageView, String url) { |
| 145 | - if (url == null) { | 149 | + if (url == null || url.equals("")) { |
| 146 | // imageView.setImageResource(R.mipmap.ic_launcher); | 150 | // imageView.setImageResource(R.mipmap.ic_launcher); |
| 147 | 151 | ||
| 148 | - Glide.with(imageView.getContext()).load("https://yweb0.cnliveimg.com/main/cnlive/150819151803915_969.jpg").error(R.mipmap.ic_launcher).into(imageView); | 152 | + Glide.with(imageView.getContext()).load(R.mipmap.ic_launcher).bitmapTransform(new GlideCircleTransform(imageView.getContext())).error(R.mipmap.ic_launcher).into(imageView); |
| 149 | } else { | 153 | } else { |
| 150 | - Glide.with(imageView.getContext()).load(url).error(R.mipmap.ic_launcher).into(imageView); | 154 | + Glide.with(imageView.getContext()).load(url).bitmapTransform(new GlideCircleTransform(imageView.getContext())).error(R.mipmap.ic_launcher).into(imageView); |
| 151 | } | 155 | } |
| 152 | } | 156 | } |
| 153 | 157 | ||
| @@ -192,7 +196,7 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | @@ -192,7 +196,7 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | ||
| 192 | @Override | 196 | @Override |
| 193 | public void onClick(View view) { | 197 | public void onClick(View view) { |
| 194 | int i = View.INVISIBLE == fragmentChatBinding.rlGift.getVisibility() ? View.VISIBLE : View.INVISIBLE; | 198 | int i = View.INVISIBLE == fragmentChatBinding.rlGift.getVisibility() ? View.VISIBLE : View.INVISIBLE; |
| 195 | - SharedPreferencesHelper.getInstance(getActivity()).setValue("ishow",i); | 199 | + SharedPreferencesHelper.getInstance(getActivity()).setValue("ishow", i); |
| 196 | fragmentChatBinding.rlGift.setVisibility(i); | 200 | fragmentChatBinding.rlGift.setVisibility(i); |
| 197 | } | 201 | } |
| 198 | }); | 202 | }); |
| @@ -219,6 +223,9 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | @@ -219,6 +223,9 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | ||
| 219 | } | 223 | } |
| 220 | } | 224 | } |
| 221 | 225 | ||
| 226 | + /** | ||
| 227 | + * 设置礼物 | ||
| 228 | + */ | ||
| 222 | private void initGift() { | 229 | private void initGift() { |
| 223 | fragmentChatBinding.sendMessage.setOnClickListener(new View.OnClickListener() { | 230 | fragmentChatBinding.sendMessage.setOnClickListener(new View.OnClickListener() { |
| 224 | 231 | ||
| @@ -235,6 +242,9 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | @@ -235,6 +242,9 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | ||
| 235 | 242 | ||
| 236 | } | 243 | } |
| 237 | 244 | ||
| 245 | + /** | ||
| 246 | + * 初始化监听事件 | ||
| 247 | + */ | ||
| 238 | private void initListener() { | 248 | private void initListener() { |
| 239 | barrageBottom(); | 249 | barrageBottom(); |
| 240 | initMessageAdapter(); | 250 | initMessageAdapter(); |
| @@ -246,12 +256,17 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | @@ -246,12 +256,17 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | ||
| 246 | public void giftItem(int postion) { | 256 | public void giftItem(int postion) { |
| 247 | fragmentChatBinding.rlGift.setVisibility(View.INVISIBLE); | 257 | fragmentChatBinding.rlGift.setVisibility(View.INVISIBLE); |
| 248 | 258 | ||
| 249 | - messageContents.add(new MessageContent(messageContents.get(0).getName(), "送了" + gitName[postion] + ":", messageContents.get(0).getIcon(), false)); | 259 | + messageContents.add(new MessageContent(messageContents.get(0).getName(), "送了" + gitName[postion] + ":", faceurl, false)); |
| 250 | messageContentCommonAdapter.addItems((messageContents)); | 260 | messageContentCommonAdapter.addItems((messageContents)); |
| 251 | } | 261 | } |
| 252 | 262 | ||
| 253 | ArrayList<MessageContent> messageContents; | 263 | ArrayList<MessageContent> messageContents; |
| 254 | 264 | ||
| 265 | + /** | ||
| 266 | + * 聊天的回调接口 | ||
| 267 | + * | ||
| 268 | + * @param messageContents | ||
| 269 | + */ | ||
| 255 | @Override | 270 | @Override |
| 256 | public void onchat(ArrayList<MessageContent> messageContents) { | 271 | public void onchat(ArrayList<MessageContent> messageContents) { |
| 257 | this.messageContents = messageContents; | 272 | this.messageContents = messageContents; |
| @@ -259,17 +274,29 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | @@ -259,17 +274,29 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | ||
| 259 | 274 | ||
| 260 | } | 275 | } |
| 261 | 276 | ||
| 277 | + /** | ||
| 278 | + * 弹幕 | ||
| 279 | + * | ||
| 280 | + * @param barrageBaseMessage | ||
| 281 | + */ | ||
| 262 | @Override | 282 | @Override |
| 263 | public void onbarrage(BarrageBaseMessage barrageBaseMessage) { | 283 | public void onbarrage(BarrageBaseMessage barrageBaseMessage) { |
| 264 | barrageLayout.addMessage(barrageBaseMessage); | 284 | barrageLayout.addMessage(barrageBaseMessage); |
| 265 | } | 285 | } |
| 266 | 286 | ||
| 267 | - //在注册了的Activity中,声明处理事件的方法 | 287 | + //在处理礼物返回问题 |
| 288 | + | ||
| 289 | + | ||
| 290 | + /** | ||
| 291 | + * 接收页面 {@link PlayerActivity} | ||
| 292 | + * | ||
| 293 | + * @param event 处理 礼物出现后activity 和fragment的返回问题. | ||
| 294 | + */ | ||
| 268 | @Subscribe(threadMode = ThreadMode.MAIN) //第2步:注册一个在后台线程执行的方法,用于接收事件 | 295 | @Subscribe(threadMode = ThreadMode.MAIN) //第2步:注册一个在后台线程执行的方法,用于接收事件 |
| 269 | public void onUserEvent(MsgEvent event) { | 296 | public void onUserEvent(MsgEvent event) { |
| 270 | 297 | ||
| 271 | fragmentChatBinding.rlGift.setVisibility(View.INVISIBLE); | 298 | fragmentChatBinding.rlGift.setVisibility(View.INVISIBLE); |
| 272 | - SharedPreferencesHelper.getInstance(getActivity()).setValue("ishow",4); | 299 | + SharedPreferencesHelper.getInstance(getActivity()).setValue("ishow", 4); |
| 273 | } | 300 | } |
| 274 | 301 | ||
| 275 | } | 302 | } |
app/src/main/res/color/chat_send_text.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<selector xmlns:android="http://schemas.android.com/apk/res/android"> | ||
| 3 | + <item android:color="#515151" android:state_selected="true" /> | ||
| 4 | + <item android:color="#515151" android:state_pressed="true" /> | ||
| 5 | + <item android:color="#515151" android:state_focused="true" /> | ||
| 6 | + <item android:color="#656565" /> | ||
| 7 | +</selector> | ||
| 0 | \ No newline at end of file | 8 | \ No newline at end of file |
app/src/main/res/drawable-xhdpi/btn_expression_nor.png
0 → 100644
705 Bytes
app/src/main/res/drawable-xhdpi/btn_expression_sel.png
0 → 100644
682 Bytes
app/src/main/res/drawable/btn_chat_send_nor.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<shape xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + android:shape="rectangle"> | ||
| 4 | + <solid android:color="#e6e6e6" /> | ||
| 5 | + <corners android:radius="2dp" /> | ||
| 6 | + <stroke android:width="1px" android:color="#bfbfbf" android:dashWidth="1px" | ||
| 7 | + android:dashGap="0dp" /> | ||
| 8 | +</shape> | ||
| 0 | \ No newline at end of file | 9 | \ No newline at end of file |
app/src/main/res/drawable/btn_chat_send_sel.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<shape xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + android:shape="rectangle"> | ||
| 4 | + <solid android:color="#d2d2d2" /> | ||
| 5 | + <corners android:radius="2dp" /> | ||
| 6 | + <stroke android:width="1px" android:color="#ababab" android:dashWidth="1px" | ||
| 7 | + android:dashGap="0dp" /> | ||
| 8 | +</shape> | ||
| 0 | \ No newline at end of file | 9 | \ No newline at end of file |
app/src/main/res/drawable/btn_input.png
0 → 100644
1 KB
app/src/main/res/drawable/btn_send_chat_selector.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | + | ||
| 3 | +<selector xmlns:android="http://schemas.android.com/apk/res/android"> | ||
| 4 | + <item android:drawable="@drawable/btn_chat_send_sel" android:state_pressed="true" /> | ||
| 5 | + <item android:drawable="@drawable/btn_chat_send_nor" android:state_pressed="false" /> | ||
| 6 | + <item android:drawable="@drawable/btn_chat_send_nor" /> | ||
| 7 | +</selector> | ||
| 0 | \ No newline at end of file | 8 | \ No newline at end of file |
app/src/main/res/drawable/edit_text.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<shape xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 3 | + android:shape="rectangle"> | ||
| 4 | + <solid android:color="#e6e6e6" /> | ||
| 5 | + <corners android:radius="2dp" /> | ||
| 6 | + <stroke android:width="1dp" android:color="#bfbfbf" android:dashWidth="1dp" | ||
| 7 | + android:dashGap="0dp" /> | ||
| 8 | +</shape> | ||
| 0 | \ No newline at end of file | 9 | \ No newline at end of file |
app/src/main/res/drawable/expression_face_selector.xml
0 → 100644
| 1 | +<?xml version="1.0" encoding="utf-8"?> | ||
| 2 | +<selector xmlns:android="http://schemas.android.com/apk/res/android"> | ||
| 3 | + <item android:state_pressed="true" android:drawable="@drawable/btn_expression_sel" /> | ||
| 4 | + <item android:state_pressed="false" android:drawable="@drawable/btn_expression_nor" /> | ||
| 5 | +</selector> |
app/src/main/res/layout/item_list_right.xml
| @@ -29,9 +29,10 @@ | @@ -29,9 +29,10 @@ | ||
| 29 | android:paddingTop="5dp"> | 29 | android:paddingTop="5dp"> |
| 30 | 30 | ||
| 31 | <ImageView | 31 | <ImageView |
| 32 | + | ||
| 32 | android:id="@+id/iv_left_user_icon" | 33 | android:id="@+id/iv_left_user_icon" |
| 33 | - android:layout_width="wrap_content" | ||
| 34 | - android:layout_height="wrap_content" | 34 | + android:layout_width="30dp" |
| 35 | + android:layout_height="30dp" | ||
| 35 | android:layout_centerVertical="true" | 36 | android:layout_centerVertical="true" |
| 36 | app:imageUrl="@{user.icon}" /> | 37 | app:imageUrl="@{user.icon}" /> |
| 37 | 38 | ||
| @@ -46,7 +47,7 @@ | @@ -46,7 +47,7 @@ | ||
| 46 | android:id="@+id/tv_left_user_name" | 47 | android:id="@+id/tv_left_user_name" |
| 47 | android:layout_width="wrap_content" | 48 | android:layout_width="wrap_content" |
| 48 | android:layout_height="wrap_content" | 49 | android:layout_height="wrap_content" |
| 49 | - android:text="@{user.name}" | 50 | + android:text='@{user.name}' |
| 50 | android:textColor="@android:color/white" /> | 51 | android:textColor="@android:color/white" /> |
| 51 | 52 | ||
| 52 | <TextView | 53 | <TextView |
| @@ -54,7 +55,7 @@ | @@ -54,7 +55,7 @@ | ||
| 54 | android:layout_width="wrap_content" | 55 | android:layout_width="wrap_content" |
| 55 | android:layout_height="wrap_content" | 56 | android:layout_height="wrap_content" |
| 56 | android:layout_marginTop="5dp" | 57 | android:layout_marginTop="5dp" |
| 57 | - android:text="@{user.messaage}" | 58 | + android:text='@{user.messaage}' |
| 58 | android:textColor="@android:color/white" /> | 59 | android:textColor="@android:color/white" /> |
| 59 | </LinearLayout> | 60 | </LinearLayout> |
| 60 | 61 | ||
| @@ -93,8 +94,8 @@ | @@ -93,8 +94,8 @@ | ||
| 93 | 94 | ||
| 94 | <ImageView | 95 | <ImageView |
| 95 | android:layout_gravity="center_vertical" | 96 | android:layout_gravity="center_vertical" |
| 96 | - android:layout_width="wrap_content" | ||
| 97 | - android:layout_height="wrap_content" | 97 | + android:layout_width="30dp" |
| 98 | + android:layout_height="30dp" | ||
| 98 | app:imageUrl="@{user.icon}" | 99 | app:imageUrl="@{user.icon}" |
| 99 | /> | 100 | /> |
| 100 | 101 |
app/src/main/res/layout/layout_input.xml
0 → 100644
| 1 | +<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" | ||
| 2 | + xmlns:emojicon="http://schemas.android.com/apk/res-auto" | ||
| 3 | + android:layout_width="match_parent" | ||
| 4 | + android:layout_height="48dp" | ||
| 5 | + android:background="@android:color/white"> | ||
| 6 | + | ||
| 7 | + <ImageView | ||
| 8 | + android:layout_width="match_parent" | ||
| 9 | + android:layout_height="1px" | ||
| 10 | + android:background="@color/main_tab_spinner_line_color" /> | ||
| 11 | + | ||
| 12 | + <ImageView | ||
| 13 | + android:id="@+id/emoticons_button" | ||
| 14 | + android:layout_width="30dp" | ||
| 15 | + android:layout_height="30dp" | ||
| 16 | + android:layout_centerVertical="true" | ||
| 17 | + android:layout_marginLeft="8dp" | ||
| 18 | + android:src="@drawable/expression_face_selector" /> | ||
| 19 | + | ||
| 20 | + | ||
| 21 | + <LinearLayout | ||
| 22 | + android:layout_width="match_parent" | ||
| 23 | + android:layout_height="30dp" | ||
| 24 | + android:layout_centerVertical="true" | ||
| 25 | + android:layout_marginLeft="8dp" | ||
| 26 | + android:layout_toLeftOf="@+id/post_button" | ||
| 27 | + android:layout_toRightOf="@+id/emoticons_button" | ||
| 28 | + android:background="@drawable/edit_text" | ||
| 29 | + android:orientation="horizontal"> | ||
| 30 | + | ||
| 31 | + | ||
| 32 | + <EditText | ||
| 33 | + android:id="@+id/chat_content" | ||
| 34 | + android:layout_width="match_parent" | ||
| 35 | + android:layout_height="match_parent" | ||
| 36 | + android:background="@null" | ||
| 37 | + android:gravity="center_vertical" | ||
| 38 | + android:hint="@string/input_button_text" | ||
| 39 | + android:imeOptions="actionSend" | ||
| 40 | + android:inputType="textLongMessage" | ||
| 41 | + android:maxLength="120" | ||
| 42 | + android:paddingLeft="8dp" | ||
| 43 | + android:textColor="@color/text_input_color" | ||
| 44 | + android:textColorHint="@color/text_hint_color" | ||
| 45 | + android:textSize="16sp" | ||
| 46 | + /> | ||
| 47 | + </LinearLayout> | ||
| 48 | + | ||
| 49 | + | ||
| 50 | + <TextView | ||
| 51 | + android:id="@+id/post_button" | ||
| 52 | + android:layout_width="50dp" | ||
| 53 | + android:layout_height="30dp" | ||
| 54 | + android:layout_alignParentRight="true" | ||
| 55 | + android:layout_centerVertical="true" | ||
| 56 | + android:layout_marginLeft="8dp" | ||
| 57 | + android:layout_marginRight="8dp" | ||
| 58 | + android:background="@drawable/btn_send_chat_selector" | ||
| 59 | + android:gravity="center" | ||
| 60 | + android:text="发送" | ||
| 61 | + android:textColor="@color/chat_send_text" | ||
| 62 | + android:textSize="16sp" /> | ||
| 63 | + | ||
| 64 | +</RelativeLayout> | ||
| 0 | \ No newline at end of file | 65 | \ No newline at end of file |
app/src/main/res/values/colors.xml
| @@ -28,4 +28,6 @@ | @@ -28,4 +28,6 @@ | ||
| 28 | <color name="color_text_normal_999">#999</color> | 28 | <color name="color_text_normal_999">#999</color> |
| 29 | <color name="color_cutline_ececec">#ececec</color> | 29 | <color name="color_cutline_ececec">#ececec</color> |
| 30 | <color name="color_9d9d9d">#9d9d9d</color> | 30 | <color name="color_9d9d9d">#9d9d9d</color> |
| 31 | + | ||
| 32 | + <color name="main_tab_spinner_line_color">#D5D5D5</color> | ||
| 31 | </resources> | 33 | </resources> |