Commit 747e659192492ad89c6159f18f9b247192db8e54
1 parent
964c0b2b
直播页面 调整布局
Showing
13 changed files
with
406 additions
and
39 deletions
app/src/main/java/com/cnlive/gundam/main/model/MsgEvent.java
0 → 100644
app/src/main/java/com/cnlive/gundam/main/ui/widget/RecyclerSpace.java
0 → 100644
| 1 | +package com.cnlive.gundam.main.ui.widget; | ||
| 2 | + | ||
| 3 | + | ||
| 4 | + | ||
| 5 | +import android.graphics.Canvas; | ||
| 6 | +import android.graphics.Paint; | ||
| 7 | +import android.graphics.Rect; | ||
| 8 | +import android.graphics.drawable.Drawable; | ||
| 9 | +import android.support.annotation.ColorRes; | ||
| 10 | +import android.support.v7.widget.GridLayoutManager; | ||
| 11 | +import android.support.v7.widget.LinearLayoutManager; | ||
| 12 | +import android.support.v7.widget.RecyclerView; | ||
| 13 | +import android.view.View; | ||
| 14 | + | ||
| 15 | +/** | ||
| 16 | + * 创建:wukuiqing | ||
| 17 | + * <p> | ||
| 18 | + * 时间:2017/7/12 | ||
| 19 | + * <p> | ||
| 20 | + * 描述:分割线 | ||
| 21 | + */ | ||
| 22 | +public class RecyclerSpace extends RecyclerView.ItemDecoration { | ||
| 23 | + private int space; | ||
| 24 | + private int color = -1; | ||
| 25 | + private Drawable mDivider; | ||
| 26 | + private Paint mPaint; | ||
| 27 | + private int type; | ||
| 28 | + | ||
| 29 | + public int getColor() { | ||
| 30 | + return color; | ||
| 31 | + } | ||
| 32 | + | ||
| 33 | + public void setColor(@ColorRes int color) { | ||
| 34 | + this.color = color; | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | + public RecyclerSpace(int space) { | ||
| 38 | + this.space = space; | ||
| 39 | + } | ||
| 40 | + | ||
| 41 | + public RecyclerSpace(int space, int color) { | ||
| 42 | + this.space = space; | ||
| 43 | + this.color = color; | ||
| 44 | + mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); | ||
| 45 | + mPaint.setColor(color); | ||
| 46 | + mPaint.setStyle(Paint.Style.FILL); | ||
| 47 | + mPaint.setStrokeWidth(space * 2); | ||
| 48 | + } | ||
| 49 | + public RecyclerSpace(int space, int color,int type) { | ||
| 50 | + this.space = space; | ||
| 51 | + this.color = color; | ||
| 52 | + mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); | ||
| 53 | + mPaint.setColor(color); | ||
| 54 | + mPaint.setStyle(Paint.Style.FILL); | ||
| 55 | + mPaint.setStrokeWidth(space * 2); | ||
| 56 | + this.type=type; | ||
| 57 | + } | ||
| 58 | + | ||
| 59 | + public RecyclerSpace(int space, Drawable mDivider) { | ||
| 60 | + this.space = space; | ||
| 61 | + this.mDivider = mDivider; | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | + @Override | ||
| 65 | + public void getItemOffsets(Rect outRect, View view, | ||
| 66 | + RecyclerView parent, RecyclerView.State state) { | ||
| 67 | + if (parent.getLayoutManager() != null) { | ||
| 68 | + if (parent.getLayoutManager() instanceof LinearLayoutManager && !(parent.getLayoutManager() instanceof GridLayoutManager)) { | ||
| 69 | + if (((LinearLayoutManager) parent.getLayoutManager()).getOrientation() == LinearLayoutManager.HORIZONTAL) { | ||
| 70 | + outRect.set(space, 0, space, 0); | ||
| 71 | + } else { | ||
| 72 | + outRect.set(0, space, 0, space); | ||
| 73 | + } | ||
| 74 | + } else { | ||
| 75 | + outRect.set(space, space, space, space); | ||
| 76 | + } | ||
| 77 | + } | ||
| 78 | + | ||
| 79 | + } | ||
| 80 | + | ||
| 81 | + @Override | ||
| 82 | + public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) { | ||
| 83 | + super.onDraw(c, parent, state); | ||
| 84 | + if (parent.getLayoutManager() != null) { | ||
| 85 | + if (parent.getLayoutManager() instanceof LinearLayoutManager && !(parent.getLayoutManager() instanceof GridLayoutManager)) { | ||
| 86 | + if (((LinearLayoutManager) parent.getLayoutManager()).getOrientation() == LinearLayoutManager.HORIZONTAL) { | ||
| 87 | + drawHorizontal(c, parent); | ||
| 88 | + } else { | ||
| 89 | + drawVertical(c, parent); | ||
| 90 | + } | ||
| 91 | + } else { | ||
| 92 | + if(type==0){ | ||
| 93 | + drawGrideview(c, parent); | ||
| 94 | + }else{ | ||
| 95 | + drawGrideview1(c, parent); | ||
| 96 | + } | ||
| 97 | + } | ||
| 98 | + } | ||
| 99 | + } | ||
| 100 | + | ||
| 101 | + //绘制纵向 item 分割线 | ||
| 102 | + | ||
| 103 | + private void drawVertical(Canvas canvas, RecyclerView parent) { | ||
| 104 | + final int top = parent.getPaddingTop(); | ||
| 105 | + final int bottom = parent.getMeasuredHeight() - parent.getPaddingBottom(); | ||
| 106 | + final int childSize = parent.getChildCount(); | ||
| 107 | + for (int i = 0; i < childSize; i++) { | ||
| 108 | + final View child = parent.getChildAt(i); | ||
| 109 | + RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams(); | ||
| 110 | + final int left = child.getRight() + layoutParams.rightMargin; | ||
| 111 | + final int right = left + space; | ||
| 112 | + if (mDivider != null) { | ||
| 113 | + mDivider.setBounds(left, top, right, bottom); | ||
| 114 | + mDivider.draw(canvas); | ||
| 115 | + } | ||
| 116 | + if (mPaint != null) { | ||
| 117 | + canvas.drawRect(left, top, right, bottom, mPaint); | ||
| 118 | + } | ||
| 119 | + } | ||
| 120 | + } | ||
| 121 | + | ||
| 122 | + //绘制横向 item 分割线 | ||
| 123 | + private void drawHorizontal(Canvas canvas, RecyclerView parent) { | ||
| 124 | + int left = parent.getPaddingLeft(); | ||
| 125 | + int right = parent.getMeasuredWidth() - parent.getPaddingRight(); | ||
| 126 | + final int childSize = parent.getChildCount(); | ||
| 127 | + for (int i = 0; i < childSize; i++) { | ||
| 128 | + final View child = parent.getChildAt(i); | ||
| 129 | + RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams(); | ||
| 130 | + int top = child.getBottom() + layoutParams.bottomMargin; | ||
| 131 | + int bottom = top + space; | ||
| 132 | + if (mDivider != null) { | ||
| 133 | + mDivider.setBounds(left, top, right, bottom); | ||
| 134 | + mDivider.draw(canvas); | ||
| 135 | + } | ||
| 136 | + if (mPaint != null) { | ||
| 137 | + canvas.drawRect(left, top, right, bottom, mPaint); | ||
| 138 | + } | ||
| 139 | + | ||
| 140 | + } | ||
| 141 | + } | ||
| 142 | + | ||
| 143 | + //绘制grideview item 分割线 不是填充满的 | ||
| 144 | + private void drawGrideview(Canvas canvas, RecyclerView parent) { | ||
| 145 | + GridLayoutManager linearLayoutManager = (GridLayoutManager) parent.getLayoutManager(); | ||
| 146 | + int childSize = parent.getChildCount(); | ||
| 147 | + int other = parent.getChildCount() / linearLayoutManager.getSpanCount() - 1; | ||
| 148 | + if (other < 1) { | ||
| 149 | + other = 1; | ||
| 150 | + } | ||
| 151 | + other = other * linearLayoutManager.getSpanCount(); | ||
| 152 | + if (parent.getChildCount() < linearLayoutManager.getSpanCount()) { | ||
| 153 | + other = parent.getChildCount(); | ||
| 154 | + } | ||
| 155 | + int top, bottom, left, right, spancount; | ||
| 156 | + spancount = linearLayoutManager.getSpanCount() - 1; | ||
| 157 | + for (int i = 0; i < childSize; i++) { | ||
| 158 | + final View child = parent.getChildAt(i); | ||
| 159 | + RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams(); | ||
| 160 | + if (i < other) { | ||
| 161 | + top = child.getBottom() + layoutParams.bottomMargin; | ||
| 162 | + bottom = top + space; | ||
| 163 | + left = (layoutParams.leftMargin + space) * (i + 1); | ||
| 164 | + right = child.getMeasuredWidth() * (i + 1) + left + space * i; | ||
| 165 | + if (mDivider != null) { | ||
| 166 | + mDivider.setBounds(left, top, right, bottom); | ||
| 167 | + mDivider.draw(canvas); | ||
| 168 | + } | ||
| 169 | + if (mPaint != null) { | ||
| 170 | + canvas.drawRect(left, top, right, bottom, mPaint); | ||
| 171 | + } | ||
| 172 | + } | ||
| 173 | + if (i != spancount) { | ||
| 174 | + top = (layoutParams.topMargin + space) * (i / linearLayoutManager.getSpanCount() + 1); | ||
| 175 | + bottom = (child.getMeasuredHeight() + space) * (i / linearLayoutManager.getSpanCount() + 1) + space; | ||
| 176 | + left = child.getRight() + layoutParams.rightMargin; | ||
| 177 | + right = left + space; | ||
| 178 | + if (mDivider != null) { | ||
| 179 | + mDivider.setBounds(left, top, right, bottom); | ||
| 180 | + mDivider.draw(canvas); | ||
| 181 | + } | ||
| 182 | + if (mPaint != null) { | ||
| 183 | + canvas.drawRect(left, top, right, bottom, mPaint); | ||
| 184 | + } | ||
| 185 | + } else { | ||
| 186 | + spancount += 4; | ||
| 187 | + } | ||
| 188 | + } | ||
| 189 | + } | ||
| 190 | + | ||
| 191 | + /***/ | ||
| 192 | + private void drawGrideview1(Canvas canvas, RecyclerView parent) { | ||
| 193 | + GridLayoutManager linearLayoutManager = (GridLayoutManager) parent.getLayoutManager(); | ||
| 194 | + int childSize = parent.getChildCount(); | ||
| 195 | + int top, bottom, left, right,spancount; | ||
| 196 | + spancount=linearLayoutManager.getSpanCount(); | ||
| 197 | + for (int i = 0; i < childSize; i++) { | ||
| 198 | + final View child = parent.getChildAt(i); | ||
| 199 | + //画横线 | ||
| 200 | + RecyclerView.LayoutParams layoutParams = (RecyclerView.LayoutParams) child.getLayoutParams(); | ||
| 201 | + top = child.getBottom() + layoutParams.bottomMargin; | ||
| 202 | + bottom = top + space; | ||
| 203 | + left = layoutParams.leftMargin+child.getPaddingLeft()+space; | ||
| 204 | + right = child.getMeasuredWidth() * (i + 1) + left + space * i; | ||
| 205 | + if (mDivider != null) { | ||
| 206 | + mDivider.setBounds(left, top, right, bottom); | ||
| 207 | + mDivider.draw(canvas); | ||
| 208 | + } | ||
| 209 | + if (mPaint != null) { | ||
| 210 | + canvas.drawRect(left, top, right, bottom, mPaint); | ||
| 211 | + } | ||
| 212 | + //画竖线 | ||
| 213 | + top = (layoutParams.topMargin + space) * (i / linearLayoutManager.getSpanCount() + 1); | ||
| 214 | + bottom = (child.getMeasuredHeight() + space) * (i / linearLayoutManager.getSpanCount() + 1) + space; | ||
| 215 | + left = child.getRight() + layoutParams.rightMargin; | ||
| 216 | + right = left + space; | ||
| 217 | + if (mDivider != null) { | ||
| 218 | + mDivider.setBounds(left, top, right, bottom); | ||
| 219 | + mDivider.draw(canvas); | ||
| 220 | + } | ||
| 221 | + if (mPaint != null) { | ||
| 222 | + canvas.drawRect(left, top, right, bottom, mPaint); | ||
| 223 | + } | ||
| 224 | + | ||
| 225 | + //画上缺失的线框 | ||
| 226 | + if(i<spancount){ | ||
| 227 | + top = child.getTop() + layoutParams.topMargin; | ||
| 228 | + bottom = top + space; | ||
| 229 | + left = (layoutParams.leftMargin + space) * (i + 1); | ||
| 230 | + right = child.getMeasuredWidth() * (i + 1) + left + space * i; | ||
| 231 | + if (mDivider != null) { | ||
| 232 | + mDivider.setBounds(left, top, right, bottom); | ||
| 233 | + mDivider.draw(canvas); | ||
| 234 | + } | ||
| 235 | + if (mPaint != null) { | ||
| 236 | + canvas.drawRect(left, top, right, bottom, mPaint); | ||
| 237 | + } | ||
| 238 | + } | ||
| 239 | + if(i%spancount==0){ | ||
| 240 | + top = (layoutParams.topMargin + space) * (i / linearLayoutManager.getSpanCount() + 1); | ||
| 241 | + bottom = (child.getMeasuredHeight() + space) * (i / linearLayoutManager.getSpanCount() + 1) + space; | ||
| 242 | + left = child.getLeft() + layoutParams.leftMargin; | ||
| 243 | + right = left + space; | ||
| 244 | + if (mDivider != null) { | ||
| 245 | + mDivider.setBounds(left, top, right, bottom); | ||
| 246 | + mDivider.draw(canvas); | ||
| 247 | + } | ||
| 248 | + if (mPaint != null) { | ||
| 249 | + canvas.drawRect(left, top, right, bottom, mPaint); | ||
| 250 | + } | ||
| 251 | + } | ||
| 252 | + } | ||
| 253 | + } | ||
| 254 | +} | ||
| 0 | \ No newline at end of file | 255 | \ No newline at end of file |
app/src/main/java/com/cnlive/gundam/video/activity/PlayerActivity.java
| @@ -9,13 +9,20 @@ import android.support.v7.app.AppCompatActivity; | @@ -9,13 +9,20 @@ import android.support.v7.app.AppCompatActivity; | ||
| 9 | import android.widget.Toast; | 9 | import android.widget.Toast; |
| 10 | 10 | ||
| 11 | import com.cnlive.gundam.R; | 11 | import com.cnlive.gundam.R; |
| 12 | +import com.cnlive.gundam.main.model.MsgEvent; | ||
| 12 | import com.cnlive.gundam.main.model.VideoListProgram; | 13 | import com.cnlive.gundam.main.model.VideoListProgram; |
| 14 | +import com.cnlive.gundam.main.utils.SharedPreferencesHelper; | ||
| 15 | +import com.cnlive.gundam.user.util.ToastUtil; | ||
| 13 | import com.cnlive.gundam.video.fragment.PlayerLiveFragment; | 16 | import com.cnlive.gundam.video.fragment.PlayerLiveFragment; |
| 14 | import com.cnlive.gundam.video.fragment.PlayerUgcLiveFragment; | 17 | import com.cnlive.gundam.video.fragment.PlayerUgcLiveFragment; |
| 15 | import com.cnlive.gundam.video.fragment.PlayerUgcVodFragment; | 18 | import com.cnlive.gundam.video.fragment.PlayerUgcVodFragment; |
| 16 | import com.cnlive.gundam.video.fragment.PlayerVodFragment; | 19 | import com.cnlive.gundam.video.fragment.PlayerVodFragment; |
| 17 | import com.cnlive.gundam.video.utils.PlayerUtils; | 20 | import com.cnlive.gundam.video.utils.PlayerUtils; |
| 18 | 21 | ||
| 22 | +import org.greenrobot.eventbus.EventBus; | ||
| 23 | +import org.greenrobot.eventbus.Subscribe; | ||
| 24 | +import org.greenrobot.eventbus.ThreadMode; | ||
| 25 | + | ||
| 19 | /** | 26 | /** |
| 20 | * Created by gujun on 2017/4/5. | 27 | * Created by gujun on 2017/4/5. |
| 21 | * screenDirect //0:竖向 1;横向 ugcLive ugcVod 播放页面用到了 | 28 | * screenDirect //0:竖向 1;横向 ugcLive ugcVod 播放页面用到了 |
| @@ -28,11 +35,14 @@ public class PlayerActivity extends AppCompatActivity { | @@ -28,11 +35,14 @@ public class PlayerActivity extends AppCompatActivity { | ||
| 28 | //默认横屏 | 35 | //默认横屏 |
| 29 | private int screenDirect = 1; | 36 | private int screenDirect = 1; |
| 30 | 37 | ||
| 38 | + | ||
| 31 | @Override | 39 | @Override |
| 32 | protected void onCreate(@Nullable Bundle savedInstanceState) { | 40 | protected void onCreate(@Nullable Bundle savedInstanceState) { |
| 33 | super.onCreate(savedInstanceState); | 41 | super.onCreate(savedInstanceState); |
| 34 | setContentView(R.layout.activity_player); | 42 | setContentView(R.layout.activity_player); |
| 35 | addData(getIntent()); | 43 | addData(getIntent()); |
| 44 | + | ||
| 45 | + | ||
| 36 | } | 46 | } |
| 37 | 47 | ||
| 38 | @Override | 48 | @Override |
| @@ -80,11 +90,20 @@ public class PlayerActivity extends AppCompatActivity { | @@ -80,11 +90,20 @@ public class PlayerActivity extends AppCompatActivity { | ||
| 80 | 90 | ||
| 81 | @Override | 91 | @Override |
| 82 | public void onBackPressed() { | 92 | public void onBackPressed() { |
| 93 | + | ||
| 83 | if (!(PlayerUtils.isPortrait(this)) && (fragment instanceof PlayerLiveFragment || fragment instanceof PlayerVodFragment)) { | 94 | if (!(PlayerUtils.isPortrait(this)) && (fragment instanceof PlayerLiveFragment || fragment instanceof PlayerVodFragment)) { |
| 84 | setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); | 95 | setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); |
| 96 | + } else if (SharedPreferencesHelper.getInstance(this).getIntValue("ishow") == 0) { | ||
| 97 | + EventBus.getDefault().post(new MsgEvent()); | ||
| 85 | } else { | 98 | } else { |
| 86 | super.onBackPressed(); | 99 | super.onBackPressed(); |
| 87 | } | 100 | } |
| 88 | } | 101 | } |
| 89 | 102 | ||
| 103 | + | ||
| 104 | + @Override | ||
| 105 | + protected void onDestroy() { | ||
| 106 | + super.onDestroy(); | ||
| 107 | + EventBus.getDefault().unregister(this); | ||
| 108 | + } | ||
| 90 | } | 109 | } |
app/src/main/java/com/cnlive/gundam/video/adpter/CommonAdapter.java
| @@ -8,6 +8,7 @@ import android.view.View; | @@ -8,6 +8,7 @@ import android.view.View; | ||
| 8 | import android.view.ViewGroup; | 8 | import android.view.ViewGroup; |
| 9 | import android.widget.BaseAdapter; | 9 | import android.widget.BaseAdapter; |
| 10 | import android.widget.LinearLayout; | 10 | import android.widget.LinearLayout; |
| 11 | +import android.widget.RelativeLayout; | ||
| 11 | 12 | ||
| 12 | import com.cnlive.gundam.databinding.ItemListRightBinding; | 13 | import com.cnlive.gundam.databinding.ItemListRightBinding; |
| 13 | import com.cnlive.gundam.video.model.MessageContent; | 14 | import com.cnlive.gundam.video.model.MessageContent; |
| @@ -67,12 +68,12 @@ public class CommonAdapter<T> extends BaseAdapter { | @@ -67,12 +68,12 @@ public class CommonAdapter<T> extends BaseAdapter { | ||
| 67 | if(((MessageContent) mDataList.get(position)).isSendInfo()){ | 68 | if(((MessageContent) mDataList.get(position)).isSendInfo()){ |
| 68 | ItemListRightBinding binding1 = (ItemListRightBinding) binding; | 69 | ItemListRightBinding binding1 = (ItemListRightBinding) binding; |
| 69 | LinearLayout rightLin = binding1.rightLin; | 70 | LinearLayout rightLin = binding1.rightLin; |
| 70 | - LinearLayout leftLin = binding1.leftLin; | 71 | + RelativeLayout leftLin = binding1.leftLin; |
| 71 | leftLin.setVisibility(View.VISIBLE); | 72 | leftLin.setVisibility(View.VISIBLE); |
| 72 | rightLin.setVisibility(View.INVISIBLE); | 73 | rightLin.setVisibility(View.INVISIBLE); |
| 73 | }else { | 74 | }else { |
| 74 | ItemListRightBinding binding1 = (ItemListRightBinding) binding; | 75 | ItemListRightBinding binding1 = (ItemListRightBinding) binding; |
| 75 | - LinearLayout leftLin = binding1.leftLin; | 76 | + RelativeLayout leftLin = binding1.leftLin; |
| 76 | LinearLayout rightLin = binding1.rightLin; | 77 | LinearLayout rightLin = binding1.rightLin; |
| 77 | rightLin.setVisibility(View.VISIBLE); | 78 | rightLin.setVisibility(View.VISIBLE); |
| 78 | 79 |
app/src/main/java/com/cnlive/gundam/video/fragment/chat/ChatRoomFragment.java
| @@ -11,6 +11,7 @@ import android.support.v4.app.Fragment; | @@ -11,6 +11,7 @@ import android.support.v4.app.Fragment; | ||
| 11 | import android.support.v4.content.ContextCompat; | 11 | import android.support.v4.content.ContextCompat; |
| 12 | import android.support.v7.widget.GridLayoutManager; | 12 | import android.support.v7.widget.GridLayoutManager; |
| 13 | import android.support.v7.widget.SwitchCompat; | 13 | import android.support.v7.widget.SwitchCompat; |
| 14 | +import android.util.Log; | ||
| 14 | import android.view.LayoutInflater; | 15 | import android.view.LayoutInflater; |
| 15 | import android.view.View; | 16 | import android.view.View; |
| 16 | import android.view.ViewGroup; | 17 | import android.view.ViewGroup; |
| @@ -21,6 +22,9 @@ import com.bumptech.glide.Glide; | @@ -21,6 +22,9 @@ import com.bumptech.glide.Glide; | ||
| 21 | import com.cnlive.gundam.BR; | 22 | import com.cnlive.gundam.BR; |
| 22 | import com.cnlive.gundam.R; | 23 | import com.cnlive.gundam.R; |
| 23 | import com.cnlive.gundam.databinding.FragmentChatBinding; | 24 | import com.cnlive.gundam.databinding.FragmentChatBinding; |
| 25 | +import com.cnlive.gundam.main.model.MsgEvent; | ||
| 26 | +import com.cnlive.gundam.main.ui.widget.RecyclerSpace; | ||
| 27 | +import com.cnlive.gundam.main.utils.SharedPreferencesHelper; | ||
| 24 | import com.cnlive.gundam.user.auth.UserService; | 28 | import com.cnlive.gundam.user.auth.UserService; |
| 25 | import com.cnlive.gundam.user.model.User; | 29 | import com.cnlive.gundam.user.model.User; |
| 26 | import com.cnlive.gundam.user.util.InputUtil; | 30 | import com.cnlive.gundam.user.util.InputUtil; |
| @@ -34,10 +38,14 @@ import com.cnlive.gundam.video.model.MessageContent; | @@ -34,10 +38,14 @@ import com.cnlive.gundam.video.model.MessageContent; | ||
| 34 | import com.cnlive.libs.util.chat.ChatUtil; | 38 | import com.cnlive.libs.util.chat.ChatUtil; |
| 35 | import com.cnlive.libs.util.chat.base.IChat; | 39 | import com.cnlive.libs.util.chat.base.IChat; |
| 36 | import com.cnlive.libs.util.chat.model.CNUserInfo; | 40 | import com.cnlive.libs.util.chat.model.CNUserInfo; |
| 41 | +import com.cnlive.libs.util.data.okhttpUtil.utils.L; | ||
| 37 | import com.cnlive.libs.video.barrage.BarrageLayout; | 42 | import com.cnlive.libs.video.barrage.BarrageLayout; |
| 38 | 43 | ||
| 39 | -import java.util.ArrayList; | 44 | +import org.greenrobot.eventbus.EventBus; |
| 45 | +import org.greenrobot.eventbus.Subscribe; | ||
| 46 | +import org.greenrobot.eventbus.ThreadMode; | ||
| 40 | 47 | ||
| 48 | +import java.util.ArrayList; | ||
| 41 | 49 | ||
| 42 | 50 | ||
| 43 | /** | 51 | /** |
| @@ -82,23 +90,25 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | @@ -82,23 +90,25 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | ||
| 82 | public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { | 90 | public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { |
| 83 | super.onViewCreated(view, savedInstanceState); | 91 | super.onViewCreated(view, savedInstanceState); |
| 84 | initListener(); | 92 | initListener(); |
| 93 | + EventBus.getDefault().register(this); | ||
| 85 | initDate(); | 94 | initDate(); |
| 86 | initGift(); | 95 | initGift(); |
| 87 | int checkCallPhonePermission = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_PHONE_STATE); | 96 | int checkCallPhonePermission = ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.READ_PHONE_STATE); |
| 88 | if (checkCallPhonePermission != PackageManager.PERMISSION_GRANTED) { | 97 | if (checkCallPhonePermission != PackageManager.PERMISSION_GRANTED) { |
| 89 | requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, PERMISSION_REQUEST_CODE); | 98 | requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, PERMISSION_REQUEST_CODE); |
| 90 | - }else{ | 99 | + } else { |
| 91 | initChat(); | 100 | initChat(); |
| 92 | } | 101 | } |
| 93 | } | 102 | } |
| 103 | + | ||
| 94 | @Override | 104 | @Override |
| 95 | public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { | 105 | public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { |
| 96 | super.onRequestPermissionsResult(requestCode, permissions, grantResults); | 106 | super.onRequestPermissionsResult(requestCode, permissions, grantResults); |
| 97 | - if(requestCode == PERMISSION_REQUEST_CODE){ | 107 | + if (requestCode == PERMISSION_REQUEST_CODE) { |
| 98 | if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { | 108 | if (grantResults[0] == PackageManager.PERMISSION_GRANTED) { |
| 99 | initChat(); | 109 | initChat(); |
| 100 | } else { | 110 | } else { |
| 101 | - ToastUtil.show(getActivity(),"使用聊天功能,请通过权限审核"); | 111 | + ToastUtil.show(getActivity(), "使用聊天功能,请通过权限审核"); |
| 102 | } | 112 | } |
| 103 | } | 113 | } |
| 104 | } | 114 | } |
| @@ -121,6 +131,8 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | @@ -121,6 +131,8 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | ||
| 121 | } | 131 | } |
| 122 | } | 132 | } |
| 123 | }); | 133 | }); |
| 134 | + | ||
| 135 | + | ||
| 124 | } | 136 | } |
| 125 | 137 | ||
| 126 | @BindingAdapter("android:src") | 138 | @BindingAdapter("android:src") |
| @@ -131,7 +143,9 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | @@ -131,7 +143,9 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | ||
| 131 | @BindingAdapter({"imageUrl"}) | 143 | @BindingAdapter({"imageUrl"}) |
| 132 | public static void loadImage(ImageView imageView, String url) { | 144 | public static void loadImage(ImageView imageView, String url) { |
| 133 | if (url == null) { | 145 | if (url == null) { |
| 134 | - imageView.setImageResource(R.mipmap.ic_launcher); | 146 | +// imageView.setImageResource(R.mipmap.ic_launcher); |
| 147 | + | ||
| 148 | + Glide.with(imageView.getContext()).load("https://yweb0.cnliveimg.com/main/cnlive/150819151803915_969.jpg").error(R.mipmap.ic_launcher).into(imageView); | ||
| 135 | } else { | 149 | } else { |
| 136 | Glide.with(imageView.getContext()).load(url).error(R.mipmap.ic_launcher).into(imageView); | 150 | Glide.with(imageView.getContext()).load(url).error(R.mipmap.ic_launcher).into(imageView); |
| 137 | } | 151 | } |
| @@ -143,11 +157,11 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | @@ -143,11 +157,11 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | ||
| 143 | } | 157 | } |
| 144 | 158 | ||
| 145 | 159 | ||
| 146 | - | ||
| 147 | @Override | 160 | @Override |
| 148 | public void onDestroy() { | 161 | public void onDestroy() { |
| 149 | super.onDestroy(); | 162 | super.onDestroy(); |
| 150 | ChatUtil.disconnect(false); | 163 | ChatUtil.disconnect(false); |
| 164 | + EventBus.getDefault().unregister(this); | ||
| 151 | } | 165 | } |
| 152 | 166 | ||
| 153 | private void initChat() { | 167 | private void initChat() { |
| @@ -178,11 +192,14 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | @@ -178,11 +192,14 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | ||
| 178 | @Override | 192 | @Override |
| 179 | public void onClick(View view) { | 193 | public void onClick(View view) { |
| 180 | int i = View.INVISIBLE == fragmentChatBinding.rlGift.getVisibility() ? View.VISIBLE : View.INVISIBLE; | 194 | int i = View.INVISIBLE == fragmentChatBinding.rlGift.getVisibility() ? View.VISIBLE : View.INVISIBLE; |
| 195 | + SharedPreferencesHelper.getInstance(getActivity()).setValue("ishow",i); | ||
| 181 | fragmentChatBinding.rlGift.setVisibility(i); | 196 | fragmentChatBinding.rlGift.setVisibility(i); |
| 182 | } | 197 | } |
| 183 | }); | 198 | }); |
| 184 | GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), 6); | 199 | GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext(), 6); |
| 185 | fragmentChatBinding.recyclerGift.setLayoutManager(gridLayoutManager); | 200 | fragmentChatBinding.recyclerGift.setLayoutManager(gridLayoutManager); |
| 201 | + fragmentChatBinding.recyclerGift.addItemDecoration(new RecyclerSpace(10)); | ||
| 202 | + | ||
| 186 | fragmentChatBinding.setGiftAdapter(new GiftAdapter(roomId, getActivity(), giftArray, R.layout.fragment_gift_receycel, BR.dataBean)); | 203 | fragmentChatBinding.setGiftAdapter(new GiftAdapter(roomId, getActivity(), giftArray, R.layout.fragment_gift_receycel, BR.dataBean)); |
| 187 | } | 204 | } |
| 188 | 205 | ||
| @@ -222,20 +239,22 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | @@ -222,20 +239,22 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | ||
| 222 | barrageBottom(); | 239 | barrageBottom(); |
| 223 | initMessageAdapter(); | 240 | initMessageAdapter(); |
| 224 | messageContentInfo = new MessageContentInfo(); | 241 | messageContentInfo = new MessageContentInfo(); |
| 225 | - messageContentInfo.setOnReceiveAndSendListener( roomId, getActivity(), ChatRoomFragment.this); | 242 | + messageContentInfo.setOnReceiveAndSendListener(roomId, getActivity(), ChatRoomFragment.this); |
| 226 | } | 243 | } |
| 227 | 244 | ||
| 228 | 245 | ||
| 229 | public void giftItem(int postion) { | 246 | public void giftItem(int postion) { |
| 230 | fragmentChatBinding.rlGift.setVisibility(View.INVISIBLE); | 247 | fragmentChatBinding.rlGift.setVisibility(View.INVISIBLE); |
| 231 | - messageContents.add(new MessageContent(messageContents.get(0).getName(),"送了" + gitName[postion]+":",messageContents.get(0).getIcon(),false)); | 248 | + |
| 249 | + messageContents.add(new MessageContent(messageContents.get(0).getName(), "送了" + gitName[postion] + ":", messageContents.get(0).getIcon(), false)); | ||
| 232 | messageContentCommonAdapter.addItems((messageContents)); | 250 | messageContentCommonAdapter.addItems((messageContents)); |
| 233 | } | 251 | } |
| 234 | 252 | ||
| 235 | ArrayList<MessageContent> messageContents; | 253 | ArrayList<MessageContent> messageContents; |
| 254 | + | ||
| 236 | @Override | 255 | @Override |
| 237 | public void onchat(ArrayList<MessageContent> messageContents) { | 256 | public void onchat(ArrayList<MessageContent> messageContents) { |
| 238 | - this.messageContents=messageContents; | 257 | + this.messageContents = messageContents; |
| 239 | messageContentCommonAdapter.addItems((messageContents)); | 258 | messageContentCommonAdapter.addItems((messageContents)); |
| 240 | 259 | ||
| 241 | } | 260 | } |
| @@ -244,4 +263,13 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | @@ -244,4 +263,13 @@ public class ChatRoomFragment extends Fragment implements InputUtil.SendCallback | ||
| 244 | public void onbarrage(BarrageBaseMessage barrageBaseMessage) { | 263 | public void onbarrage(BarrageBaseMessage barrageBaseMessage) { |
| 245 | barrageLayout.addMessage(barrageBaseMessage); | 264 | barrageLayout.addMessage(barrageBaseMessage); |
| 246 | } | 265 | } |
| 266 | + | ||
| 267 | + //在注册了的Activity中,声明处理事件的方法 | ||
| 268 | + @Subscribe(threadMode = ThreadMode.MAIN) //第2步:注册一个在后台线程执行的方法,用于接收事件 | ||
| 269 | + public void onUserEvent(MsgEvent event) { | ||
| 270 | + | ||
| 271 | + fragmentChatBinding.rlGift.setVisibility(View.INVISIBLE); | ||
| 272 | + SharedPreferencesHelper.getInstance(getActivity()).setValue("ishow",4); | ||
| 273 | + } | ||
| 274 | + | ||
| 247 | } | 275 | } |
app/src/main/java/com/cnlive/gundam/video/fragment/chat/MessageContentInfo.java
| @@ -67,9 +67,9 @@ public class MessageContentInfo { | @@ -67,9 +67,9 @@ public class MessageContentInfo { | ||
| 67 | messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), ": 送了" + messagecontent, message.getUserInfo().getHeadUrl(), true)); | 67 | messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), ": 送了" + messagecontent, message.getUserInfo().getHeadUrl(), true)); |
| 68 | } else if (messageType.equals(ChatRoom)) { | 68 | } else if (messageType.equals(ChatRoom)) { |
| 69 | if (message.getUserInfo().getUserId().equals(ChatUtil.getCurrentUserInfo().getUserId())) { | 69 | if (message.getUserInfo().getUserId().equals(ChatUtil.getCurrentUserInfo().getUserId())) { |
| 70 | - messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), messagecontent + " :", message.getUserInfo().getHeadUrl(), false)); | 70 | + messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), messagecontent + " : ", message.getUserInfo().getHeadUrl(), false)); |
| 71 | } else { | 71 | } else { |
| 72 | - messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), " :" + messagecontent, message.getUserInfo().getHeadUrl(), true)); | 72 | + messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), " : " + messagecontent, message.getUserInfo().getHeadUrl(), true)); |
| 73 | } | 73 | } |
| 74 | if (onChatListener != null) { | 74 | if (onChatListener != null) { |
| 75 | onChatListener.onbarrage(new BarrageBaseMessage(message.getUserInfo().getUserName(), messagecontent, "")); | 75 | onChatListener.onbarrage(new BarrageBaseMessage(message.getUserInfo().getUserName(), messagecontent, "")); |
| @@ -85,7 +85,7 @@ public class MessageContentInfo { | @@ -85,7 +85,7 @@ public class MessageContentInfo { | ||
| 85 | if (onChatListener != null) { | 85 | if (onChatListener != null) { |
| 86 | onChatListener.onbarrage(new BarrageBaseMessage(message.getUserInfo().getUserName(), "来了", "")); | 86 | onChatListener.onbarrage(new BarrageBaseMessage(message.getUserInfo().getUserName(), "来了", "")); |
| 87 | } | 87 | } |
| 88 | - messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), ": " + "来了", message.getUserInfo().getHeadUrl(), true)); | 88 | + messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), " : " + "来了", message.getUserInfo().getHeadUrl(), true)); |
| 89 | } | 89 | } |
| 90 | if (onChatListener != null) { | 90 | if (onChatListener != null) { |
| 91 | onChatListener.onchat(messageContentArrayList); | 91 | onChatListener.onchat(messageContentArrayList); |
| @@ -112,7 +112,7 @@ public class MessageContentInfo { | @@ -112,7 +112,7 @@ public class MessageContentInfo { | ||
| 112 | String messageType = cnMessageModle.getType(); | 112 | String messageType = cnMessageModle.getType(); |
| 113 | if (messageType.equals(ChatRoom)) { | 113 | if (messageType.equals(ChatRoom)) { |
| 114 | onChatListener.onbarrage(new BarrageBaseMessage(message.getUserInfo().getUserName(), messagecontent, "")); | 114 | onChatListener.onbarrage(new BarrageBaseMessage(message.getUserInfo().getUserName(), messagecontent, "")); |
| 115 | - messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), messagecontent + " :", message.getUserInfo().getHeadUrl(), false)); | 115 | + messageContentArrayList.add(new MessageContent(message.getUserInfo().getUserName(), messagecontent + " : ", message.getUserInfo().getHeadUrl(), false)); |
| 116 | onChatListener.onchat(messageContentArrayList); | 116 | onChatListener.onchat(messageContentArrayList); |
| 117 | } | 117 | } |
| 118 | } catch (Exception e) { | 118 | } catch (Exception e) { |
app/src/main/res/drawable/chat_gift_bg.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 | + android:useLevel="false"> | ||
| 5 | + <solid android:color="#454543" /> | ||
| 6 | + <size android:height="24dp" /> | ||
| 7 | + <corners | ||
| 8 | + android:bottomLeftRadius="8dp" | ||
| 9 | + android:bottomRightRadius="8dp" | ||
| 10 | + android:topLeftRadius="8dp" | ||
| 11 | + android:topRightRadius="8dp" /> <!-- 设置四个角的半径 --> | ||
| 12 | + | ||
| 13 | +</shape> | ||
| 0 | \ No newline at end of file | 14 | \ No newline at end of file |
app/src/main/res/drawable/switch_track_dan_off.xml
| 1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
| 2 | 2 | ||
| 3 | <shape xmlns:android="http://schemas.android.com/apk/res/android"> | 3 | <shape xmlns:android="http://schemas.android.com/apk/res/android"> |
| 4 | - <solid android:color="#CC000000" /> | ||
| 5 | - <corners android:radius="9dp" /> | 4 | + <solid android:color="#555756" /> |
| 5 | + | ||
| 6 | + | ||
| 7 | + <corners android:radius="30dp" /> | ||
| 6 | <size | 8 | <size |
| 7 | android:height="18dp" /> | 9 | android:height="18dp" /> |
| 8 | <stroke | 10 | <stroke |
app/src/main/res/drawable/switch_track_dan_on.xml
| @@ -2,7 +2,7 @@ | @@ -2,7 +2,7 @@ | ||
| 2 | 2 | ||
| 3 | <shape xmlns:android="http://schemas.android.com/apk/res/android"> | 3 | <shape xmlns:android="http://schemas.android.com/apk/res/android"> |
| 4 | <solid android:color="#FF4E51" /> | 4 | <solid android:color="#FF4E51" /> |
| 5 | - <corners android:radius="9dp" /> | 5 | + <corners android:radius="30dp" /> |
| 6 | <size | 6 | <size |
| 7 | android:height="18dp" /> | 7 | android:height="18dp" /> |
| 8 | <stroke | 8 | <stroke |
app/src/main/res/layout/fragment_chat.xml
| @@ -38,9 +38,11 @@ | @@ -38,9 +38,11 @@ | ||
| 38 | android:id="@+id/edit_layout" | 38 | android:id="@+id/edit_layout" |
| 39 | android:layout_width="match_parent" | 39 | android:layout_width="match_parent" |
| 40 | android:layout_height="50dp" | 40 | android:layout_height="50dp" |
| 41 | + android:background="#555756" | ||
| 42 | + android:orientation="horizontal" | ||
| 41 | android:layout_alignParentBottom="true" | 43 | android:layout_alignParentBottom="true" |
| 42 | - android:background="#e0000000" | ||
| 43 | - android:orientation="horizontal"> | 44 | + android:layout_alignParentLeft="true" |
| 45 | + android:layout_alignParentStart="true"> | ||
| 44 | 46 | ||
| 45 | <ImageView | 47 | <ImageView |
| 46 | android:id="@+id/sendMessage" | 48 | android:id="@+id/sendMessage" |
| @@ -83,6 +85,7 @@ | @@ -83,6 +85,7 @@ | ||
| 83 | android:visibility="invisible"> | 85 | android:visibility="invisible"> |
| 84 | 86 | ||
| 85 | <android.support.v7.widget.RecyclerView | 87 | <android.support.v7.widget.RecyclerView |
| 88 | + android:padding="5dp" | ||
| 86 | android:id="@+id/recycler_gift" | 89 | android:id="@+id/recycler_gift" |
| 87 | android:layout_width="match_parent" | 90 | android:layout_width="match_parent" |
| 88 | android:layout_height="wrap_content" | 91 | android:layout_height="wrap_content" |
app/src/main/res/layout/fragment_gift_receycel.xml
| @@ -10,6 +10,7 @@ | @@ -10,6 +10,7 @@ | ||
| 10 | </data> | 10 | </data> |
| 11 | 11 | ||
| 12 | <RelativeLayout | 12 | <RelativeLayout |
| 13 | + android:background="@drawable/record_end" | ||
| 13 | android:id="@+id/ll_item" | 14 | android:id="@+id/ll_item" |
| 14 | android:layout_width="match_parent" | 15 | android:layout_width="match_parent" |
| 15 | android:layout_height="wrap_content"> | 16 | android:layout_height="wrap_content"> |
app/src/main/res/layout/fragment_player_live.xml
| @@ -21,7 +21,7 @@ | @@ -21,7 +21,7 @@ | ||
| 21 | 21 | ||
| 22 | <RelativeLayout | 22 | <RelativeLayout |
| 23 | android:id="@+id/contentLayout" | 23 | android:id="@+id/contentLayout" |
| 24 | - android:background="@android:color/black" | 24 | + android:background="#282828" |
| 25 | android:layout_width="match_parent" | 25 | android:layout_width="match_parent" |
| 26 | android:layout_height="match_parent" | 26 | android:layout_height="match_parent" |
| 27 | android:layout_below="@+id/videoView"> | 27 | android:layout_below="@+id/videoView"> |
app/src/main/res/layout/item_list_right.xml
| @@ -11,64 +11,98 @@ | @@ -11,64 +11,98 @@ | ||
| 11 | </data> | 11 | </data> |
| 12 | 12 | ||
| 13 | <RelativeLayout | 13 | <RelativeLayout |
| 14 | + | ||
| 14 | android:layout_width="match_parent" | 15 | android:layout_width="match_parent" |
| 15 | - android:layout_height="match_parent"> | 16 | + android:layout_height="wrap_content" |
| 17 | + android:padding="10dp"> | ||
| 16 | 18 | ||
| 17 | - <LinearLayout | 19 | + <RelativeLayout |
| 18 | android:id="@+id/left_lin" | 20 | android:id="@+id/left_lin" |
| 19 | - | ||
| 20 | android:layout_width="wrap_content" | 21 | android:layout_width="wrap_content" |
| 21 | android:layout_height="50dp" | 22 | android:layout_height="50dp" |
| 22 | - android:orientation="horizontal"> | 23 | + android:layout_alignParentLeft="true" |
| 24 | + android:background="@drawable/chat_gift_bg" | ||
| 23 | 25 | ||
| 24 | - <com.cnlive.gundam.user.view.CircleImageView | ||
| 25 | - android:layout_width="20dp" | ||
| 26 | - android:layout_height="20dp" | ||
| 27 | - app:imageUrl="@{user.icon}"/> | 26 | + android:paddingBottom="5dp" |
| 27 | + android:paddingLeft="10dp" | ||
| 28 | + android:paddingRight="10dp" | ||
| 29 | + android:paddingTop="5dp"> | ||
| 28 | 30 | ||
| 29 | - <TextView | 31 | + <ImageView |
| 32 | + android:id="@+id/iv_left_user_icon" | ||
| 30 | android:layout_width="wrap_content" | 33 | android:layout_width="wrap_content" |
| 31 | android:layout_height="wrap_content" | 34 | android:layout_height="wrap_content" |
| 32 | - android:textColor="@android:color/white" | ||
| 33 | - android:text="@{user.name}" /> | 35 | + android:layout_centerVertical="true" |
| 36 | + app:imageUrl="@{user.icon}" /> | ||
| 34 | 37 | ||
| 35 | - <TextView | 38 | + <LinearLayout |
| 36 | android:layout_width="wrap_content" | 39 | android:layout_width="wrap_content" |
| 37 | android:layout_height="wrap_content" | 40 | android:layout_height="wrap_content" |
| 38 | - android:textColor="@android:color/white" | ||
| 39 | - android:text="@{user.messaage}" /> | ||
| 40 | - </LinearLayout> | 41 | + android:layout_marginLeft="10dp" |
| 42 | + android:layout_toRightOf="@+id/iv_left_user_icon" | ||
| 43 | + android:orientation="vertical"> | ||
| 44 | + | ||
| 45 | + <TextView | ||
| 46 | + android:id="@+id/tv_left_user_name" | ||
| 47 | + android:layout_width="wrap_content" | ||
| 48 | + android:layout_height="wrap_content" | ||
| 49 | + android:text="@{user.name}" | ||
| 50 | + android:textColor="@android:color/white" /> | ||
| 51 | + | ||
| 52 | + <TextView | ||
| 53 | + android:id="@+id/tv_left_user_mewssage" | ||
| 54 | + android:layout_width="wrap_content" | ||
| 55 | + android:layout_height="wrap_content" | ||
| 56 | + android:layout_marginTop="5dp" | ||
| 57 | + android:text="@{user.messaage}" | ||
| 58 | + android:textColor="@android:color/white" /> | ||
| 59 | + </LinearLayout> | ||
| 60 | + | ||
| 61 | + | ||
| 62 | + </RelativeLayout> | ||
| 41 | 63 | ||
| 42 | 64 | ||
| 43 | 65 | ||
| 44 | <LinearLayout | 66 | <LinearLayout |
| 45 | android:id="@+id/right_lin" | 67 | android:id="@+id/right_lin" |
| 68 | + android:background="@drawable/chat_gift_bg" | ||
| 46 | 69 | ||
| 70 | + android:paddingBottom="5dp" | ||
| 71 | + android:paddingLeft="10dp" | ||
| 72 | + android:paddingRight="10dp" | ||
| 73 | + android:paddingTop="5dp" | ||
| 47 | android:layout_alignParentRight="true" | 74 | android:layout_alignParentRight="true" |
| 48 | android:layout_width="wrap_content" | 75 | android:layout_width="wrap_content" |
| 49 | android:layout_height="50dp" | 76 | android:layout_height="50dp" |
| 50 | android:orientation="horizontal"> | 77 | android:orientation="horizontal"> |
| 51 | 78 | ||
| 52 | <TextView | 79 | <TextView |
| 80 | + android:layout_gravity="center_vertical" | ||
| 81 | + android:layout_marginRight="10dp" | ||
| 53 | android:layout_width="wrap_content" | 82 | android:layout_width="wrap_content" |
| 54 | android:layout_height="wrap_content" | 83 | android:layout_height="wrap_content" |
| 55 | android:textColor="@android:color/white" | 84 | android:textColor="@android:color/white" |
| 56 | android:text="@{user.messaage}" /> | 85 | android:text="@{user.messaage}" /> |
| 57 | <TextView | 86 | <TextView |
| 87 | + android:layout_gravity="center_vertical" | ||
| 88 | + android:visibility="gone" | ||
| 58 | android:layout_width="wrap_content" | 89 | android:layout_width="wrap_content" |
| 59 | android:layout_height="wrap_content" | 90 | android:layout_height="wrap_content" |
| 60 | android:textColor="@android:color/white" | 91 | android:textColor="@android:color/white" |
| 61 | android:text="@{user.name}" /> | 92 | android:text="@{user.name}" /> |
| 62 | 93 | ||
| 63 | - <com.cnlive.gundam.user.view.CircleImageView | ||
| 64 | - android:layout_width="20dp" | ||
| 65 | - android:layout_height="20dp" | 94 | + <ImageView |
| 95 | + android:layout_gravity="center_vertical" | ||
| 96 | + android:layout_width="wrap_content" | ||
| 97 | + android:layout_height="wrap_content" | ||
| 66 | app:imageUrl="@{user.icon}" | 98 | app:imageUrl="@{user.icon}" |
| 67 | /> | 99 | /> |
| 68 | 100 | ||
| 69 | </LinearLayout> | 101 | </LinearLayout> |
| 70 | 102 | ||
| 71 | 103 | ||
| 104 | + | ||
| 105 | + | ||
| 72 | </RelativeLayout> | 106 | </RelativeLayout> |
| 73 | 107 | ||
| 74 | </layout> | 108 | </layout> |
| 75 | \ No newline at end of file | 109 | \ No newline at end of file |