创建游戏,游戏界面完成

This commit is contained in:
18401019693 2023-09-25 17:24:49 +08:00
parent 866024ae95
commit ce48a7dcf0
18 changed files with 689 additions and 20 deletions

View File

@ -0,0 +1,41 @@
package com.yunbao.common.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.bean.playerObject;
import com.yunbao.common.views.AvatarListViewHolder;
import java.util.ArrayList;
import java.util.List;
public class AvatarListAdapter extends RecyclerView.Adapter {
private List<playerObject> playerObjects = new ArrayList<>();
public AvatarListAdapter(List<playerObject> playerObjects) {
this.playerObjects = playerObjects;
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View runGamesView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_sud_avatar_list_view, parent, false);
return new AvatarListViewHolder(runGamesView);
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
AvatarListViewHolder avatarListViewHolder = (AvatarListViewHolder) holder;
avatarListViewHolder.setData(playerObjects.get(position));
}
@Override
public int getItemCount() {
return playerObjects.size();
}
}

View File

@ -0,0 +1,29 @@
package com.yunbao.common.adapter;
import android.content.Context;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.yunbao.common.R;
import com.yunbao.common.bean.SudRoomListModel;
import com.yunbao.common.views.SudGameListViewHolder;
public class SudGameListAdapter extends RefreshAdapter<SudRoomListModel> {
public SudGameListAdapter(Context context) {
super(context);
}
@NonNull
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new SudGameListViewHolder(mInflater.inflate(R.layout.item_sud_game_list, parent, false));
}
@Override
public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) {
SudGameListViewHolder sudGameListViewHolder = (SudGameListViewHolder) holder;
sudGameListViewHolder.setData(mList.get(position));
}
}

View File

@ -2,6 +2,9 @@ package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
import java.util.ArrayList;
import java.util.List;
public class SudRoomListModel extends BaseModel {
@ -31,4 +34,161 @@ public class SudRoomListModel extends BaseModel {
private String playerTotal;
@SerializedName("ob_total")
private String obTotal;
@SerializedName("liveuid")
private String liveUid;
@SerializedName("sex")
private String sex;
public String getLiveUid() {
return liveUid;
}
public SudRoomListModel setLiveUid(String liveUid) {
this.liveUid = liveUid;
return this;
}
public String getSex() {
return sex;
}
public SudRoomListModel setSex(String sex) {
this.sex = sex;
return this;
}
@SerializedName("player_object")
private List<playerObject> playerObjects = new ArrayList<>();
public String getId() {
return id;
}
public SudRoomListModel setId(String id) {
this.id = id;
return this;
}
public String getRoomHolderId() {
return roomHolderId;
}
public SudRoomListModel setRoomHolderId(String roomHolderId) {
this.roomHolderId = roomHolderId;
return this;
}
public String getRoomName() {
return roomName;
}
public SudRoomListModel setRoomName(String roomName) {
this.roomName = roomName;
return this;
}
public String getRoomHolderType() {
return roomHolderType;
}
public SudRoomListModel setRoomHolderType(String roomHolderType) {
this.roomHolderType = roomHolderType;
return this;
}
public String getSudGameId() {
return sudGameId;
}
public SudRoomListModel setSudGameId(String sudGameId) {
this.sudGameId = sudGameId;
return this;
}
public String getGoldenBeanNumber() {
return goldenBeanNumber;
}
public SudRoomListModel setGoldenBeanNumber(String goldenBeanNumber) {
this.goldenBeanNumber = goldenBeanNumber;
return this;
}
public String getRoomStatus() {
return roomStatus;
}
public SudRoomListModel setRoomStatus(String roomStatus) {
this.roomStatus = roomStatus;
return this;
}
public String getSudGameRoomId() {
return sudGameRoomId;
}
public SudRoomListModel setSudGameRoomId(String sudGameRoomId) {
this.sudGameRoomId = sudGameRoomId;
return this;
}
public String getRoomHolderName() {
return roomHolderName;
}
public SudRoomListModel setRoomHolderName(String roomHolderName) {
this.roomHolderName = roomHolderName;
return this;
}
public String getAvatar() {
return avatar;
}
public SudRoomListModel setAvatar(String avatar) {
this.avatar = avatar;
return this;
}
public String getSudGameName() {
return sudGameName;
}
public SudRoomListModel setSudGameName(String sudGameName) {
this.sudGameName = sudGameName;
return this;
}
public String getPlayerTotal() {
return playerTotal;
}
public SudRoomListModel setPlayerTotal(String playerTotal) {
this.playerTotal = playerTotal;
return this;
}
public String getObTotal() {
return obTotal;
}
public SudRoomListModel setObTotal(String obTotal) {
this.obTotal = obTotal;
return this;
}
public List<playerObject> getPlayerObjects() {
return playerObjects;
}
public SudRoomListModel setPlayerObjects(List<playerObject> playerObjects) {
this.playerObjects = playerObjects;
return this;
}
public String getTotal() {
int obT = Integer.parseInt(obTotal);
int playerO = Integer.parseInt(playerTotal);
return String.valueOf(obT + playerO);
}
}

View File

@ -0,0 +1,38 @@
package com.yunbao.common.bean;
import com.google.gson.annotations.SerializedName;
public class playerObject extends BaseModel {
@SerializedName("avatar")
private String avatar;
@SerializedName("id")
private String id;
public boolean isChange = false;
public boolean isChange() {
return isChange;
}
public playerObject setChange(boolean change) {
isChange = change;
return this;
}
public String getAvatar() {
return avatar;
}
public playerObject setAvatar(String avatar) {
this.avatar = avatar;
return this;
}
public String getId() {
return id;
}
public playerObject setId(String id) {
this.id = id;
return this;
}
}

View File

@ -3,25 +3,34 @@ package com.yunbao.common.dialog;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.text.TextUtils;
import android.util.Log;
import android.view.animation.LinearInterpolator;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.LinearLayoutManager;
import com.google.gson.Gson;
import com.lxj.xpopup.XPopup;
import com.lxj.xpopup.core.BottomPopupView;
import com.lxj.xpopup.enums.PopupPosition;
import com.yunbao.common.R;
import com.yunbao.common.adapter.RefreshAdapter;
import com.yunbao.common.adapter.SudGameListAdapter;
import com.yunbao.common.bean.CreateSudRoomModel;
import com.yunbao.common.bean.CustomSidebarChildModel;
import com.yunbao.common.bean.SudRoomListModel;
import com.yunbao.common.custom.CommonRefreshView;
import com.yunbao.common.event.RoomHolderTypeEvent;
import com.yunbao.common.event.SudGameListDissMissEvent;
import com.yunbao.common.event.SudGameListEvent;
import com.yunbao.common.event.SudGameListSillEvent;
import com.yunbao.common.http.base.HttpCallback;
import com.yunbao.common.http.live.LiveNetManager;
import com.yunbao.common.event.SudRoomListModelEvent;
import com.yunbao.common.http.HttpCallback;
import com.yunbao.common.http.LiveHttpUtil;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.views.LiveSudGamePopup;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import org.greenrobot.eventbus.Subscribe;
@ -39,6 +48,8 @@ public class SudGameListPopup extends BottomPopupView {
private String id = "0", mLiveUid;
private int page = 0;
private String mSill = "0,0", mSillName, roomHolderType = "0", roomHolderTypeName;
private CommonRefreshView mRefreshView;
private SudGameListAdapter sudGameListAdapter;
public SudGameListPopup(@NonNull Context context, long interactionID, List<CustomSidebarChildModel> child, String liveUid) {
super(context);
@ -64,18 +75,8 @@ public class SudGameListPopup extends BottomPopupView {
}
private void initDate() {
LiveNetManager.get(getContext())
.getRoomList(id, mSill, roomHolderType, mLiveUid, page, new HttpCallback<List<SudRoomListModel>>() {
@Override
public void onSuccess(List<SudRoomListModel> data) {
}
@Override
public void onError(String error) {
}
});
}
private void initView() {
@ -85,6 +86,60 @@ public class SudGameListPopup extends BottomPopupView {
gameTitle = findViewById(R.id.game_title);
sillTitle = findViewById(R.id.room_sill_text);
houseOwnerTitle = findViewById(R.id.house_owner_text);
mRefreshView = findViewById(R.id.refreshView);
mRefreshView.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.VERTICAL, false));
sudGameListAdapter = new SudGameListAdapter(getContext());
mRefreshView.setLoadMoreEnable(true);
mRefreshView.setRecyclerViewAdapter(sudGameListAdapter);
mRefreshView.setDataHelper(new CommonRefreshView.DataHelper<SudRoomListModel>() {
@Override
public RefreshAdapter<SudRoomListModel> getAdapter() {
return null;
}
@Override
public void loadData(int p, HttpCallback callback) {
page = p;
LiveHttpUtil.getRoomList(id, mSill, roomHolderType, mLiveUid, p, callback);
}
@Override
public List<SudRoomListModel> processData(String[] info) {
if (info.length > 0) {
List<SudRoomListModel> sudRoomListModels = new ArrayList<>();
for (String json : info) {
SudRoomListModel model = new Gson().fromJson(json, SudRoomListModel.class);
sudRoomListModels.add(model);
}
return sudRoomListModels;
} else {
return new ArrayList<>();
}
}
@Override
public void onRefreshSuccess(List<SudRoomListModel> list, int listCount) {
Log.i("onRefreshSuccess", listCount + "");
}
@Override
public void onRefreshFailure() {
}
@Override
public void onLoadMoreSuccess(List<SudRoomListModel> loadItemList, int loadItemCount) {
sudGameListAdapter.insertList(loadItemList);
}
@Override
public void onLoadMoreFailure() {
}
});
mRefreshView.initData();
for (CustomSidebarChildModel model : customSidebarChildModels) {
if (TextUtils.equals(String.valueOf(interactionID), model.getSrc())) {
gameTitle.setText(model.getTitle().substring(0, 2));
@ -175,8 +230,7 @@ public class SudGameListPopup extends BottomPopupView {
animator.setDuration(500);
animator.setInterpolator(new LinearInterpolator());
animator.start();
page=0;
initDate();
mRefreshView.initData();
}
@Subscribe(threadMode = ThreadMode.MAIN)
@ -194,8 +248,7 @@ public class SudGameListPopup extends BottomPopupView {
animator.setDuration(500);
animator.setInterpolator(new LinearInterpolator());
animator.start();
page=0;
initDate();
mRefreshView.initData();
}
@Subscribe(threadMode = ThreadMode.MAIN)
@ -207,8 +260,24 @@ public class SudGameListPopup extends BottomPopupView {
animator.setDuration(500);
animator.setInterpolator(new LinearInterpolator());
animator.start();
page=0;
initDate();
mRefreshView.initData();
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onSudGameListEvent(SudRoomListModelEvent event) {
CreateSudRoomModel createSudRoomModel = new CreateSudRoomModel();
createSudRoomModel.setSudGameId(event.getModel().getSudGameId());
createSudRoomModel.setSudGameRoomId(event.getModel().getSudGameRoomId());
createSudRoomModel.setAvatar(event.getModel().getAvatar());
createSudRoomModel.setRoomName(event.getModel().getRoomName());
createSudRoomModel.setSudGameName(event.getModel().getSudGameName());
new XPopup.Builder(getContext())
.enableDrag(false)
.dismissOnTouchOutside(false)
.dismissOnBackPressed(false)
.asCustom(new LiveSudGamePopup(getContext(), createSudRoomModel))
.show();
dialog.dismiss();
}
@Subscribe(threadMode = ThreadMode.MAIN)

View File

@ -0,0 +1,17 @@
package com.yunbao.common.event;
import com.yunbao.common.bean.BaseModel;
import com.yunbao.common.bean.SudRoomListModel;
public class SudRoomListModelEvent extends BaseModel {
private SudRoomListModel model;
public SudRoomListModel getModel() {
return model;
}
public SudRoomListModelEvent setModel(SudRoomListModel model) {
this.model = model;
return this;
}
}

View File

@ -967,6 +967,16 @@ public class LiveHttpUtil {
HttpClient.getInstance().get("Home.getFollow", "Home.getFollow")
.params("p", p)
.execute(callback);
}
}
public static void getRoomList(String sudGameId, String threshold, String roomHolderType, String liveUid,int page,HttpCallback callback ) {
HttpClient.getInstance().get("Sudgameserver.getRoomList", "Sudgameserver.getRoomList")
.params("sud_game_id",sudGameId)
.params("threshold",threshold)
.params("room_holder_type",roomHolderType)
.params("liveuid",liveUid)
.params("page",page)
.execute(callback);
}
}

View File

@ -0,0 +1,24 @@
package com.yunbao.common.views;
import android.view.View;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.makeramen.roundedimageview.RoundedImageView;
import com.yunbao.common.R;
import com.yunbao.common.bean.playerObject;
import com.yunbao.common.glide.ImgLoader;
public class AvatarListViewHolder extends RecyclerView.ViewHolder {
private RoundedImageView mAvatar;
public AvatarListViewHolder(@NonNull View itemView) {
super(itemView);
mAvatar = itemView.findViewById(R.id.avatar);
}
public void setData(playerObject model) {
ImgLoader.display(itemView.getContext(), model.getAvatar(), mAvatar);
}
}

View File

@ -0,0 +1,96 @@
package com.yunbao.common.views;
import android.text.TextUtils;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.makeramen.roundedimageview.RoundedImageView;
import com.yunbao.common.R;
import com.yunbao.common.bean.SudRoomListModel;
import com.yunbao.common.bean.playerObject;
import com.yunbao.common.event.SudRoomListModelEvent;
import com.yunbao.common.glide.ImgLoader;
import com.yunbao.common.utils.Bus;
import com.yunbao.common.views.weight.ViewClicksAntiShake;
import java.util.List;
import pl.droidsonroids.gif.GifImageView;
public class SudGameListViewHolder extends RecyclerView.ViewHolder {
private RoundedImageView mAvatar;
private TextView roomName, playerWeAre, playerWeAre2, goldenBeanNumber;
private RoundedImageView avatarList1, avatarList2, avatarList3, avatarList4, avatarList5;
private GifImageView gifImageView;
private ImageView sex;
public SudGameListViewHolder(@NonNull View itemView) {
super(itemView);
mAvatar = itemView.findViewById(R.id.avatar);
roomName = itemView.findViewById(R.id.room_name);
playerWeAre = itemView.findViewById(R.id.player_we_are);
playerWeAre2 = itemView.findViewById(R.id.player_we_are_2);
goldenBeanNumber = itemView.findViewById(R.id.golden_bean_number);
gifImageView = itemView.findViewById(R.id.btn_live);
avatarList1 = itemView.findViewById(R.id.avatar_list1);
avatarList2 = itemView.findViewById(R.id.avatar_list2);
avatarList3 = itemView.findViewById(R.id.avatar_list3);
avatarList4 = itemView.findViewById(R.id.avatar_list4);
avatarList5 = itemView.findViewById(R.id.avatar_list5);
sex = itemView.findViewById(R.id.sex);
avatarList1.setVisibility(View.GONE);
avatarList2.setVisibility(View.GONE);
avatarList3.setVisibility(View.GONE);
avatarList4.setVisibility(View.GONE);
avatarList5.setVisibility(View.GONE);
}
public void setData(SudRoomListModel model) {
ImgLoader.display(itemView.getContext(), model.getAvatar(), mAvatar);
roomName.setText(model.getRoomName());
playerWeAre.setText(String.format(itemView.getContext().getString(R.string.interactive_game_player_we_are), model.getPlayerTotal()));
playerWeAre2.setText(String.format(itemView.getContext().getString(R.string.interactive_game_player_we_are_2), model.getTotal()));
goldenBeanNumber.setText(model.getGoldenBeanNumber());
gifImageView.setVisibility(TextUtils.equals(model.getLiveUid(), "0") ? View.GONE : View.VISIBLE);
if (TextUtils.equals(model.getSex(), "1")) {
ImgLoader.display(itemView.getContext(), R.mipmap.icon_sex_man, sex);
} else if (TextUtils.equals(model.getSex(), "2")) {
ImgLoader.display(itemView.getContext(), R.mipmap.icon_sex_woman, sex);
}
List<playerObject> playerObjects = model.getPlayerObjects();
for (int i = 0; i < playerObjects.size(); i++) {
switch (i) {
case 0:
avatarList1.setVisibility(View.VISIBLE);
ImgLoader.display(itemView.getContext(), playerObjects.get(i).getAvatar(), avatarList1);
break;
case 1:
avatarList2.setVisibility(View.VISIBLE);
ImgLoader.display(itemView.getContext(), playerObjects.get(i).getAvatar(), avatarList2);
break;
case 2:
avatarList3.setVisibility(View.VISIBLE);
ImgLoader.display(itemView.getContext(), playerObjects.get(i).getAvatar(), avatarList3);
break;
case 3:
avatarList4.setVisibility(View.VISIBLE);
ImgLoader.display(itemView.getContext(), playerObjects.get(i).getAvatar(), avatarList4);
break;
case 4:
avatarList5.setVisibility(View.VISIBLE);
ImgLoader.display(itemView.getContext(), playerObjects.get(i).getAvatar(), avatarList5);
break;
}
}
ViewClicksAntiShake.clicksAntiShake(itemView, new ViewClicksAntiShake.ViewClicksCallBack() {
@Override
public void onViewClicks() {
Bus.get().post(new SudRoomListModelEvent().setModel(model));
}
});
}
}

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners
android:bottomLeftRadius="12dp"
android:topRightRadius="12dp" />
<solid android:color="#4A4A4A" />
</shape>

View File

@ -91,6 +91,8 @@
android:id="@+id/room_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="12sp" />
</LinearLayout>

View File

@ -166,9 +166,12 @@
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
<com.yunbao.common.custom.CommonRefreshView
android:id="@+id/refreshView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp" />
<Button
android:layout_width="174dp"

View File

@ -0,0 +1,157 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="88dp"
android:layout_marginStart="15dp"
android:layout_marginTop="14dp"
android:layout_marginEnd="15dp"
android:background="@mipmap/background_sud_game_list"
android:orientation="horizontal">
<FrameLayout
android:layout_width="55dp"
android:layout_height="55dp"
android:layout_marginStart="10dp"
android:layout_marginTop="17dp">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar"
android:layout_width="50dp"
android:layout_height="50dp"
android:scaleType="centerCrop"
app:riv_oval="true" />
<pl.droidsonroids.gif.GifImageView
android:id="@+id/btn_live"
android:layout_width="36dp"
android:layout_height="14dp"
android:layout_gravity="bottom|center_horizontal"
android:layout_marginEnd="3dp"
android:adjustViewBounds="true"
android:src="@mipmap/icon_user_home_living"
android:visibility="visible" />
<ImageView
android:id="@+id/sex"
android:layout_width="10dp"
android:layout_height="10dp"
android:layout_gravity="bottom|end" />
</FrameLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="16dp"
android:orientation="vertical">
<TextView
android:id="@+id/room_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="@string/interactive_game_create_room_name"
android:textColor="@color/white"
android:textSize="14sp" />
<TextView
android:id="@+id/player_we_are"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/interactive_game_player_we_are"
android:textColor="#80ffffff"
android:textSize="12sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:gravity="center_vertical">
<LinearLayout
android:layout_width="79dp"
android:layout_height="20dp">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar_list1"
android:layout_width="20dp"
android:layout_height="20dp"
android:scaleType="centerCrop"
app:riv_oval="true" />
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar_list2"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginStart="-6dp"
android:scaleType="centerCrop"
app:riv_oval="true" />
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar_list3"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginStart="-6dp"
android:scaleType="centerCrop"
app:riv_oval="true" />
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar_list4"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginStart="-6dp"
android:scaleType="centerCrop"
app:riv_oval="true" />
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar_list5"
android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginStart="-6dp"
android:scaleType="centerCrop"
app:riv_oval="true" />
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/avatar_list"
android:layout_width="76dp"
android:layout_height="20dp"
android:visibility="gone" />
<TextView
android:id="@+id/player_we_are_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/interactive_game_player_we_are_2"
android:textColor="#ffffff"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
<View
android:layout_width="0dp"
android:layout_height="1dp"
android:layout_weight="1" />
<LinearLayout
android:layout_width="68dp"
android:layout_height="26dp"
android:background="@drawable/bg_live_sud_list_sill"
android:gravity="center_vertical">
<TextView
android:id="@+id/golden_bean_number"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:text="1000"
android:textColor="@color/white"
android:textSize="12sp" />
<ImageView
android:layout_width="13dp"
android:layout_height="13dp"
android:layout_marginStart="2dp"
android:background="@mipmap/gold_coin" />
</LinearLayout>
</LinearLayout>

View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="20dp"
android:layout_height="20dp"
android:orientation="vertical">
<com.makeramen.roundedimageview.RoundedImageView
android:id="@+id/avatar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
app:riv_oval="true" />
</LinearLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 291 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 B

View File

@ -1342,4 +1342,6 @@ Limited ride And limited avatar frame</string>
<string name="interactive_game_create_2_5">2K-5K金豆</string>
<string name="interactive_game_create_5">5K以上金豆</string>
<string name="interactive_game_player">玩家</string>
<string name="interactive_game_player_we_are">%s人組隊中一起來玩吧</string>
<string name="interactive_game_player_we_are_2">%s人在綫</string>
</resources>