0
点赞
收藏
分享

微信扫一扫

【小墩墩学Android】三国人物列传(二)


目录

​​1.前言​​

​​2.开发环境​​

​​3.表格界面 ​​

​​4.列表界面 ​​

​​5.查找界面 ​​

​​6.人物详细界面​​

​​7.快捷菜单界面​​

​​8.势力情报界面​​

​​9.地图界面​​

​​10.参数设置界面​​

​​后续​​

1.前言

“一壶浊酒喜相逢,古今多少事,都付笑谈中。”
假期空闲之际,把三国志11又玩了一番,看见游戏里面的头像形象生动,于是用android写了一个app,以此纪念曾经废寝忘食玩游戏的岁月,呵呵🙂。

2.开发环境

【小墩墩学Android】三国人物列传(二)_android

【小墩墩学Android】三国人物列传(二)_技术分析_02

  1. 操作系统:Win10 64位
  2. 开发工具:Android Studio 2020.3
  3. 开发语言:java
  4. 数据库:sqlite3

3.表格界面 

【小墩墩学Android】三国人物列传(二)_技术分析_03

技术分析:
表格实现基于RecyclerView和GridLayoutManager

GridLayoutManager layoutManager = new GridLayoutManager(MainActivity.this,5);
((RecyclerView)recyclerView).setLayoutManager(layoutManager);
sideBar.setVisibility(View.GONE);

4.列表界面 

【小墩墩学Android】三国人物列传(二)_android_04

技术分析

  1. 列表实现,基于RecyclerView和LinearLayoutManager
  2. 人物名字排序,基于第三方库HanziToPinyin获取中文的首字母
  3. 右侧字母滚动条:基于第三方库AZSideBar

LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this);
((RecyclerView)recyclerView).setLayoutManager(layoutManager);
sideBar.setVisibility(View.VISIBLE);

private void initSlideView() {
lettes = new ArrayMap<>();
tv_hint = (TextView) findViewById(R.id.tv_hint);
sideBar = (AZSideBar) findViewById(R.id.sideBar);
sideBar.setVisibility(View.INVISIBLE);
sideBar.setOnTouchingLetterChangedListener(new OnChooseLetterChangedListener() {
@Override
public void onChooseLetter(String s) {
if (!tv_hint.isShown())
tv_hint.setVisibility(View.VISIBLE);
tv_hint.setText(s);
selectRecyclerView(s);
}

@Override
public void onNoChooseLetter() {
tv_hint.setVisibility(View.GONE);
}
});
}

5.查找界面 

【小墩墩学Android】三国人物列传(二)_android_05

技术分析:

  • 搜索框,基于SearchView控件实现的

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);

final MenuItem item = menu.findItem(R.id.action_search);
mSearchView = (SearchView) MenuItemCompat.getActionView(item);

//搜索框展开时后面叉叉按钮的点击事件
mSearchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
Log.e("mSearchView", "onClose");
FruitFactory.doSearch("");
setupRecyclerView((RecyclerView) recyclerView);
return false;
}
});
//搜索图标按钮(打开搜索框的按钮)的点击事件
mSearchView.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("mSearchView", "onClick");
}
});
//搜索框文字变化监听
mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
Log.e("mSearchView", "TextSubmit : " + s);
FruitFactory.doSearch(s);
setupRecyclerView((RecyclerView) recyclerView);
return false;
}

@Override
public boolean onQueryTextChange(String s) {
Log.e("mSearchView", "TextChange --> " + s);
return false;
}
});

return true;
}

6.人物详细界面

【小墩墩学Android】三国人物列传(二)_ide_06

【小墩墩学Android】三国人物列传(二)_android_07

7.快捷菜单界面

【小墩墩学Android】三国人物列传(二)_android_08

8.势力情报界面

【小墩墩学Android】三国人物列传(二)_ide_09

public class TableActivity extends BaseActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.table_main);

Intent getIntent = getIntent();
String type = getIntent.getStringExtra("type");
setTitle(getText(R.string.app_title) + " - " + type);

//设置表格标题的背景颜色
ViewGroup tableTitle = (ViewGroup) findViewById(R.id.table_title);
tableTitle.setBackgroundColor(Color.rgb(220, 220, 220));
traverseViewGroup(tableTitle);

TextView tv2 = (TextView)tableTitle.findViewById(R.id.text_goods_name);
TextView tv3 = (TextView)tableTitle.findViewById(R.id.text_codeBar);
TextView tv4 = (TextView)tableTitle.findViewById(R.id.text_num);
TextView tv5 = (TextView)tableTitle.findViewById(R.id.text_curPrice);
TextView tv6 = (TextView)tableTitle.findViewById(R.id.text_money);
TextView tv7 = (TextView)tableTitle.findViewById(R.id.text_more);

TableAdapter adapter = null;
ListView tableListView = (ListView) findViewById(R.id.list);

if(type.equals("城市"))
adapter = new TableAdapter(this, FruitFactory.PAGE_CITY);
else if(type.equals("官爵")) {
adapter = new TableAdapter(this, FruitFactory.PAGE_GUANZHI);
tv2.setText("名称");
tv3.setText("统帅");
tv4.setText("武力");
tv5.setText("智力");
tv6.setText("政治");
tv7.setText("位階");
tv7.setVisibility(View.VISIBLE);
}
else if(type.equals("宝物")) {
adapter = new TableAdapter(this, FruitFactory.PAGE_BAOWU);
tv2.setText("名称");
tv3.setText("武将");
tv4.setText("价值");
tv5.setText("种类");
tv6.setVisibility(View.GONE);
}
else if(type.equals("部落")) {
adapter = new TableAdapter(this, FruitFactory.PAGE_BULUO);
tv2.setText("名称");
tv3.setText("農業");
tv4.setText("商業");
tv5.setText("兵科");
tv6.setText("士氣");
tv7.setText("指揮");
tv7.setVisibility(View.VISIBLE);
}
else if(type.equals("战法")) {
adapter = new TableAdapter(this, FruitFactory.PAGE_ZHANFA);
tv2.setText("名称");
tv3.setText("指揮");
tv4.setText("攻擊");
tv5.setText("防禦");
tv6.setText("機動");
tv7.setText("士氣");
tv7.setVisibility(View.VISIBLE);
}
else return;

tableListView.setAdapter(adapter);
}

9.地图界面

技术分析:

  1. Gson读取json文件。
  2. Glide读取图片。
  3. 动态批量添加控件TextView和PhotoView。

10.参数设置界面

【小墩墩学Android】三国人物列传(二)_技术分析_10

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<com.fxyublib.android.FxAppSangoKoei.MyPreferenceCategory
android:key="prefCategory1"
android:title="字体" >

<ListPreference
android:key="prefList_fontName"
android:title="字体名称"
android:entries="@array/fonts"
android:entryValues="@array/fonts_value"
android:dialogTitle="字体名称"
android:defaultValue="SentyTEA.ttf"
android:summary="新蒂下午茶体" />

<!-- android:layout="@layout/layout_preffontsize" -->
<ListPreference
android:key="prefList_fontSize"
android:title="字体大小"
android:entries="@array/fonts2"
android:entryValues="@array/fonts2_value"
android:dialogTitle="字体大小"
android:defaultValue="15"
android:summary="中" />

</com.fxyublib.android.FxAppSangoKoei.MyPreferenceCategory>

<com.fxyublib.android.FxAppSangoKoei.MyPreferenceCategory
android:key="prefCategory2"
android:title="常规">

<MultiSelectListPreference
android:key="prefList_pageSet"
android:title="势力情报数据菜单"
android:entries="@array/detailpage"
android:entryValues="@array/detailpage_value"
android:defaultValue="@array/detailpage_value"
android:summary="选择需要显示和隐藏的数据子菜单" />

</com.fxyublib.android.FxAppSangoKoei.MyPreferenceCategory>

</PreferenceScreen>


举报

相关推荐

0 条评论