Commit 10b62798 authored by fallenstardust's avatar fallenstardust

优化显示速度

parent b76918b5
......@@ -4,19 +4,14 @@ package cn.garymb.ygomobile;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.util.Log;
import android.util.SparseArray;
import android.view.Gravity;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.ActionBar;
......@@ -32,107 +27,12 @@ import java.util.HashMap;
import cn.garymb.ygodata.YGOGameOptions;
import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.loader.ImageLoader;
import cn.garymb.ygomobile.ui.activities.BaseActivity;
import cn.garymb.ygomobile.ui.plus.VUiKit;
import cn.garymb.ygomobile.ui.plus.ViewTargetPlus;
import cn.garymb.ygomobile.utils.CardUtils;
import cn.garymb.ygomobile.utils.ComponentUtils;
import cn.garymb.ygomobile.utils.ThreeDLayoutUtil;
import ocgcore.CardManager;
import ocgcore.DataManager;
import ocgcore.StringManager;
import ocgcore.data.Card;
import ocgcore.enums.CardType;
import static android.view.View.inflate;
public class YGOStarter {
private static Bitmap mLogo;
private static ImageView cardImage;
private static TextView name;
private static TextView desc;
private static TextView level;
private static TextView type;
private static TextView race;
private static TextView cardAtk;
private static TextView cardDef;
private static TextView attrView;
private static View linkArrow;
private static View monsterlayout;
private static View layout_detail_p_scale;
private static View atkdefView;
private static TextView detail_cardscale;
private static CardManager mCardManager;
private static ImageLoader imageLoader;
private static StringManager mStringManager;
private static SparseArray<Card> cards;
private static View view;
public static void RandomCardDetail(Context context, Card cardInfo) {
ThreeDLayoutUtil viewCardDetail = (ThreeDLayoutUtil) inflate(context, R.layout.dialog_cardinfo_small, null);
cardImage = viewCardDetail.findViewById(R.id.card_image_toast);
name = viewCardDetail.findViewById(R.id.card_name_toast);
level = viewCardDetail.findViewById(R.id.card_level_toast);
linkArrow = viewCardDetail.findViewById(R.id.link_arrows_toast);
race = viewCardDetail.findViewById(R.id.card_race_toast);
attrView = viewCardDetail.findViewById(R.id.card_attr_toast);
type = viewCardDetail.findViewById(R.id.card_type_toast);
cardAtk = viewCardDetail.findViewById(R.id.card_atk_toast);
cardDef = viewCardDetail.findViewById(R.id.card_def_toast);
atkdefView = viewCardDetail.findViewById(R.id.layout_atkdef2_toast);
desc = viewCardDetail.findViewById(R.id.text_desc_toast);
layout_detail_p_scale = viewCardDetail.findViewById(R.id.detail_p_scale);
detail_cardscale = viewCardDetail.findViewById(R.id.detail_cardscale);
if (cardInfo == null) return;
mStringManager = DataManager.get().getStringManager();
imageLoader = ImageLoader.get(context);
imageLoader.bindImage(cardImage, cardInfo.Code, null, true);
name.setText(cardInfo.Name);
type.setText(CardUtils.getAllTypeString(cardInfo, mStringManager).replace("/", "|"));
attrView.setText(mStringManager.getAttributeString(cardInfo.Attribute));
desc.setText(cardInfo.Desc);
if (cardInfo.isType(CardType.Monster)) {
atkdefView.setVisibility(View.VISIBLE);
race.setVisibility(View.VISIBLE);
String star = "★" + cardInfo.getStar();
level.setText(star);
if (cardInfo.isType(CardType.Xyz)) {
level.setTextColor(context.getResources().getColor(R.color.star_rank));
} else {
level.setTextColor(context.getResources().getColor(R.color.star));
}
cardAtk.setText((cardInfo.Attack < 0 ? "?" : String.valueOf(cardInfo.Attack)));
if (cardInfo.isType(CardType.Pendulum)) {
desc.setTextSize(10);
}
//连接怪兽设置
if (cardInfo.isType(CardType.Link)) {
level.setVisibility(View.GONE);
linkArrow.setVisibility(View.VISIBLE);
cardDef.setText((cardInfo.getStar() < 0 ? "?" : "LINK-" + String.valueOf(cardInfo.getStar())));
BaseActivity.showLinkArrows(cardInfo, view);
} else {
level.setVisibility(View.VISIBLE);
linkArrow.setVisibility(View.GONE);
cardDef.setText((cardInfo.Defense < 0 ? "?" : String.valueOf(cardInfo.Defense)));
}
race.setText(mStringManager.getRaceString(cardInfo.Race));
} else {
atkdefView.setVisibility(View.GONE);
race.setVisibility(View.GONE);
level.setVisibility(View.GONE);
linkArrow.setVisibility(View.GONE);
}
Toast toast = new Toast(context);
toast.setView(viewCardDetail);
toast.setDuration(Toast.LENGTH_SHORT);
toast.setGravity(Gravity.LEFT, 50, 0);
toast.show();
}
private static void setFullScreen(Activity activity, ActivityShowInfo activityShowInfo) {
activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
......@@ -262,21 +162,10 @@ public class YGOStarter {
showLoadingBg(activity);
Log.e("YGOStarter", "设置背景后" + System.currentTimeMillis());
if (!ComponentUtils.isActivityRunning(activity, new ComponentName(activity, YGOMobileActivity.class))) {
//random carddetail first
VUiKit.defer().when(() -> {
mCardManager = DataManager.get().getCardManager();
cards = mCardManager.getAllCards();
}).fail((e) -> {
//if failed, random tips second
String[] tipsList = activity.getResources().getStringArray(R.array.tips);
int x = (int) (Math.random() * tipsList.length);
String tips = tipsList[x];
Toast.makeText(activity, e + "", Toast.LENGTH_LONG).show();
}).done((list) -> {
int y = (int) (Math.random() * cards.size());
Card cardinfo = cards.valueAt(y);
RandomCardDetail(activity, cardinfo);
});
String[] tipsList = activity.getResources().getStringArray(R.array.tips);
int x = (int) (Math.random() * tipsList.length);
String tips = tipsList[x];
Toast.makeText(activity, tips, Toast.LENGTH_LONG).show();
}
}
Intent intent = new Intent(activity, YGOMobileActivity.class);
......
package cn.garymb.ygomobile.ui.cards;
import android.content.Context;
import android.graphics.Bitmap;
import android.util.SparseArray;
import android.view.Gravity;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import cn.garymb.ygomobile.lite.R;
import cn.garymb.ygomobile.loader.ImageLoader;
import cn.garymb.ygomobile.ui.activities.BaseActivity;
import cn.garymb.ygomobile.ui.plus.VUiKit;
import cn.garymb.ygomobile.utils.CardUtils;
import cn.garymb.ygomobile.utils.ThreeDLayoutUtil;
import ocgcore.CardManager;
import ocgcore.DataManager;
import ocgcore.StringManager;
import ocgcore.data.Card;
import ocgcore.enums.CardType;
import static android.view.View.inflate;
public class CardDetailRandom {
private static ImageView cardImage;
private static TextView name;
private static TextView desc;
private static TextView level;
private static TextView type;
private static TextView race;
private static TextView cardAtk;
private static TextView cardDef;
private static TextView attrView;
private static View linkArrow;
private static View monsterlayout;
private static View layout_detail_p_scale;
private static View atkdefView;
private static TextView detail_cardscale;
private static CardManager mCardManager;
private static ImageLoader imageLoader;
private static StringManager mStringManager;
private static SparseArray<Card> cards;
private static View view;
public static void RandomCardDetail(BaseActivity context, Card cardInfo) {
ThreeDLayoutUtil viewCardDetail = (ThreeDLayoutUtil) inflate(context, R.layout.dialog_cardinfo_small, null);
cardImage = viewCardDetail.findViewById(R.id.card_image_toast);
name = viewCardDetail.findViewById(R.id.card_name_toast);
level = viewCardDetail.findViewById(R.id.card_level_toast);
linkArrow = viewCardDetail.findViewById(R.id.link_arrows_toast);
race = viewCardDetail.findViewById(R.id.card_race_toast);
attrView = viewCardDetail.findViewById(R.id.card_attr_toast);
type = viewCardDetail.findViewById(R.id.card_type_toast);
cardAtk = viewCardDetail.findViewById(R.id.card_atk_toast);
cardDef = viewCardDetail.findViewById(R.id.card_def_toast);
atkdefView = viewCardDetail.findViewById(R.id.layout_atkdef2_toast);
desc = viewCardDetail.findViewById(R.id.text_desc_toast);
layout_detail_p_scale = viewCardDetail.findViewById(R.id.detail_p_scale);
detail_cardscale = viewCardDetail.findViewById(R.id.detail_cardscale);
if (cardInfo == null) return;
mStringManager = DataManager.get().getStringManager();
imageLoader = ImageLoader.get(context);
imageLoader.bindImage(cardImage, cardInfo.Code, null, true);
name.setText(cardInfo.Name);
type.setText(CardUtils.getAllTypeString(cardInfo, mStringManager).replace("/", "|"));
attrView.setText(mStringManager.getAttributeString(cardInfo.Attribute));
desc.setText(cardInfo.Desc);
if (cardInfo.isType(CardType.Monster)) {
atkdefView.setVisibility(View.VISIBLE);
race.setVisibility(View.VISIBLE);
String star = "★" + cardInfo.getStar();
level.setText(star);
if (cardInfo.isType(CardType.Xyz)) {
level.setTextColor(context.getResources().getColor(R.color.star_rank));
} else {
level.setTextColor(context.getResources().getColor(R.color.star));
}
cardAtk.setText((cardInfo.Attack < 0 ? "?" : String.valueOf(cardInfo.Attack)));
if (cardInfo.isType(CardType.Pendulum)) {
desc.setTextSize(10);
}
//连接怪兽设置
if (cardInfo.isType(CardType.Link)) {
level.setVisibility(View.GONE);
linkArrow.setVisibility(View.VISIBLE);
cardDef.setText((cardInfo.getStar() < 0 ? "?" : "LINK-" + String.valueOf(cardInfo.getStar())));
BaseActivity.showLinkArrows(cardInfo, view);
} else {
level.setVisibility(View.VISIBLE);
linkArrow.setVisibility(View.GONE);
cardDef.setText((cardInfo.Defense < 0 ? "?" : String.valueOf(cardInfo.Defense)));
}
race.setText(mStringManager.getRaceString(cardInfo.Race));
} else {
atkdefView.setVisibility(View.GONE);
race.setVisibility(View.GONE);
level.setVisibility(View.GONE);
linkArrow.setVisibility(View.GONE);
}
Toast toast = new Toast(context);
toast.setView(viewCardDetail);
toast.setDuration(Toast.LENGTH_LONG);
toast.setGravity(Gravity.LEFT, 50, 0);
toast.show();
}
}
......@@ -63,6 +63,7 @@ import cn.garymb.ygomobile.ui.activities.FileLogActivity;
import cn.garymb.ygomobile.ui.activities.WebActivity;
import cn.garymb.ygomobile.ui.adapters.ServerListAdapter;
import cn.garymb.ygomobile.ui.adapters.SimpleListAdapter;
import cn.garymb.ygomobile.ui.cards.CardDetailRandom;
import cn.garymb.ygomobile.ui.cards.CardSearchAcitivity;
import cn.garymb.ygomobile.ui.cards.DeckManagerActivity;
import cn.garymb.ygomobile.ui.cards.deck.DeckUtils;
......@@ -78,6 +79,9 @@ import cn.garymb.ygomobile.utils.FileLogUtil;
import cn.garymb.ygomobile.utils.PayUtils;
import cn.garymb.ygomobile.utils.ScreenUtil;
import cn.garymb.ygomobile.utils.YGOUtil;
import ocgcore.CardManager;
import ocgcore.DataManager;
import ocgcore.data.Card;
import static cn.garymb.ygomobile.Constants.ASSET_SERVER_LIST;
......@@ -92,6 +96,8 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
private ServerListAdapter mServerListAdapter;
private ServerListManager mServerListManager;
private DuelAssistantManagement duelAssistantManagement;
private CardManager mCardManager;
private SparseArray<Card> cards;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
......@@ -122,7 +128,7 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
public void onViewInitFinished(boolean arg0) {
//x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
if (arg0) {
Toast.makeText(getActivity(), "加载成功", Toast.LENGTH_LONG).show();
Toast.makeText(getActivity(), "加载成功", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getActivity(), "部分资源因机型原因加载错误,不影响使用", Toast.LENGTH_LONG).show();
}
......@@ -648,4 +654,12 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
dialog.dismiss();
});
}
public void setRandomCardDetail() {
mCardManager = DataManager.get().getCardManager();
cards = mCardManager.getAllCards();
int y = (int) (Math.random() * cards.size());
Card cardinfo = cards.valueAt(y);
CardDetailRandom.RandomCardDetail(this, cardinfo);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment