Commit 10b62798 authored by fallenstardust's avatar fallenstardust

优化显示速度

parent b76918b5
...@@ -4,19 +4,14 @@ package cn.garymb.ygomobile; ...@@ -4,19 +4,14 @@ package cn.garymb.ygomobile;
import android.annotation.SuppressLint; import android.annotation.SuppressLint;
import android.app.Activity; import android.app.Activity;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Build; import android.os.Build;
import android.util.Log; import android.util.Log;
import android.util.SparseArray;
import android.view.Gravity;
import android.view.View; import android.view.View;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.ActionBar;
...@@ -32,107 +27,12 @@ import java.util.HashMap; ...@@ -32,107 +27,12 @@ import java.util.HashMap;
import cn.garymb.ygodata.YGOGameOptions; import cn.garymb.ygodata.YGOGameOptions;
import cn.garymb.ygomobile.lite.R; 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.ui.plus.ViewTargetPlus;
import cn.garymb.ygomobile.utils.CardUtils;
import cn.garymb.ygomobile.utils.ComponentUtils; 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 { public class YGOStarter {
private static Bitmap mLogo; 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) { private static void setFullScreen(Activity activity, ActivityShowInfo activityShowInfo) {
activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, activity.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
...@@ -262,21 +162,10 @@ public class YGOStarter { ...@@ -262,21 +162,10 @@ public class YGOStarter {
showLoadingBg(activity); showLoadingBg(activity);
Log.e("YGOStarter", "设置背景后" + System.currentTimeMillis()); Log.e("YGOStarter", "设置背景后" + System.currentTimeMillis());
if (!ComponentUtils.isActivityRunning(activity, new ComponentName(activity, YGOMobileActivity.class))) { if (!ComponentUtils.isActivityRunning(activity, new ComponentName(activity, YGOMobileActivity.class))) {
//random carddetail first String[] tipsList = activity.getResources().getStringArray(R.array.tips);
VUiKit.defer().when(() -> { int x = (int) (Math.random() * tipsList.length);
mCardManager = DataManager.get().getCardManager(); String tips = tipsList[x];
cards = mCardManager.getAllCards(); Toast.makeText(activity, tips, Toast.LENGTH_LONG).show();
}).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);
});
} }
} }
Intent intent = new Intent(activity, YGOMobileActivity.class); 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; ...@@ -63,6 +63,7 @@ import cn.garymb.ygomobile.ui.activities.FileLogActivity;
import cn.garymb.ygomobile.ui.activities.WebActivity; import cn.garymb.ygomobile.ui.activities.WebActivity;
import cn.garymb.ygomobile.ui.adapters.ServerListAdapter; import cn.garymb.ygomobile.ui.adapters.ServerListAdapter;
import cn.garymb.ygomobile.ui.adapters.SimpleListAdapter; 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.CardSearchAcitivity;
import cn.garymb.ygomobile.ui.cards.DeckManagerActivity; import cn.garymb.ygomobile.ui.cards.DeckManagerActivity;
import cn.garymb.ygomobile.ui.cards.deck.DeckUtils; import cn.garymb.ygomobile.ui.cards.deck.DeckUtils;
...@@ -78,6 +79,9 @@ import cn.garymb.ygomobile.utils.FileLogUtil; ...@@ -78,6 +79,9 @@ import cn.garymb.ygomobile.utils.FileLogUtil;
import cn.garymb.ygomobile.utils.PayUtils; import cn.garymb.ygomobile.utils.PayUtils;
import cn.garymb.ygomobile.utils.ScreenUtil; import cn.garymb.ygomobile.utils.ScreenUtil;
import cn.garymb.ygomobile.utils.YGOUtil; 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; import static cn.garymb.ygomobile.Constants.ASSET_SERVER_LIST;
...@@ -92,6 +96,8 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie ...@@ -92,6 +96,8 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
private ServerListAdapter mServerListAdapter; private ServerListAdapter mServerListAdapter;
private ServerListManager mServerListManager; private ServerListManager mServerListManager;
private DuelAssistantManagement duelAssistantManagement; private DuelAssistantManagement duelAssistantManagement;
private CardManager mCardManager;
private SparseArray<Card> cards;
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
...@@ -122,7 +128,7 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie ...@@ -122,7 +128,7 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
public void onViewInitFinished(boolean arg0) { public void onViewInitFinished(boolean arg0) {
//x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。 //x5內核初始化完成的回调,为true表示x5内核加载成功,否则表示x5内核加载失败,会自动切换到系统内核。
if (arg0) { if (arg0) {
Toast.makeText(getActivity(), "加载成功", Toast.LENGTH_LONG).show(); Toast.makeText(getActivity(), "加载成功", Toast.LENGTH_LONG).show();
} else { } else {
Toast.makeText(getActivity(), "部分资源因机型原因加载错误,不影响使用", Toast.LENGTH_LONG).show(); Toast.makeText(getActivity(), "部分资源因机型原因加载错误,不影响使用", Toast.LENGTH_LONG).show();
} }
...@@ -648,4 +654,12 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie ...@@ -648,4 +654,12 @@ public abstract class HomeActivity extends BaseActivity implements NavigationVie
dialog.dismiss(); 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