“飞花令”APP(简单的收索软件)
2017-03-04 23:51
465 查看
一. app要求
实现一个简单的 UI 界面。UI 界面中有基本的元素如按钮,搜索框,文本输出框等。
在收索框中随意输入一个汉字可以以此判断是否存在唐诗三百首诗词当中,若存在,则
输出全部含有该汉字的诗句;若没有,则不会输出任何内容。
二. 设计方案
1. UI 界面(1) button:收索按钮,实现查询功能。
(2) Textview:输出内容框,输出我们所需要的内容。
(3) EditText:输入内容框,用户可以任意输进一个字符。
2. 美化界面
(1) 根据用户输入的汉字输出的诗句中的关键字以红色字体标记。
(2) 根据用户需求设置 UI 界面的背景颜色以及 UI 界面中字体的大小和颜色。
三. 具体方案
1. 下载安卓开发软件去官网上下载安装Andriod Studio,安装后下载相关 SDK。 (相关措施可以百度或质询同学)
2. 熟悉 Android Studio
(1)对UI界面的简单编辑
可以通过左边的组件来编辑 UI 界面:
3.对文本文件的读取
(1)首先是先建立一个文件夹
(2)然后我们会在 app 的目录下找到一点 assets 文件,然后新建一个文档,再将唐诗三百放进其中。
4. UI 界面各组件的相应操作和代码实现
(1) 各组件的操作,如button,直接进行拖拉即可
(2)对组件的设置
点击组件,然后通过这些设置可以设置组件的颜色以及它内容中字体的大小和前景色。
(3) 各个组件的代码实现
& 对于textview
str="字符串"; TextView text = (TextView) findViewById(R.id.textview); text.setText(str);
&对于button
Button bt; bt = (Button)findViewById(R.id.button1); bt.setOnClickListener(new View.OnClickListener(){ @Override //监听点击事件 public void onClick(View v) { //用户点击按钮执行的语句 } });
&对于文件的处理
1. Scanner scan = new Scanner(getResources().getAssets().open("唐诗三百"));
&对于关键字颜色的处理
from:http://www.2cto.com/kf/201409/335648.html public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String str="这是设置TextView部分文字背景颜色和前景颜色的demo!"; int bstart=str.indexOf("背景"); int bend=bstart+"背景".length(); int fstart=str.indexOf("前景"); int fend=fstart+"前景".length(); SpannableStringBuilder style=new SpannableStringBuilder(str); style.setSpan(new 15. BackgroundColorSpan(Color.RED),bstart,bend,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); style.setSpan(new ForegroundColorSpan(Color.RED),fstart,fend,Spannable.SPAN_EXCLUSIVE_INCLUSIVE); TextView tvColor=(TextView) findViewById(R.id.tv_color); tvColor.setText(style); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } }
&对于文本内容上下滑动与左右滑动
tv.setMovementMethod(ScrollingMovementMethod.getInstance()); tv.setHorizontallyScrolling(true);
&java实现部分
import android.graphics.Color; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.text.Spannable; import android.text.SpannableStringBuilder; import android.text.method.ScrollingMovementMethod; import android.text.style.ForegroundColorSpan; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; import java.io.IOException; import java.util.Scanner; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) findViewById(R.id.b); button.setOnClickListener(new View.OnClickListener() { @Override //监听点击事件 public void onClick(View v) { //读取输入的关键字 EditText word =(EditText) findViewById(R.id.e); String thisword = word.getText().toString(); //记录收索到的结果条数 int sum=1; String line,ans = ""; String title=""; try { TextView text = (TextView) findViewById(R.id.t); Scanner scan = new Scanner(getResources().getAssets().open("唐诗三百")); out: while (scan.hasNext()){ line = scan.nextLine(); for (int i = 0; i < line.length(); i++) { if(line.charAt(i)=='《') { title = line; continue out; } if (line.indexOf(thisword)==i) { ans += sum+":"+line +"\n-------"+title+ "\n"; sum++; text.setText(ans); title=""; text.setMovementMethod(ScrollingMovementMethod.getInstance()); }else if(thisword=="。"||thisword=="?"||thisword==","||thisword=="!") break out; } //字体颜色 int k=0; SpannableStringBuilder style=new SpannableStringBuilder(ans); while( k >= 0) { int l=ans.indexOf(thisword, k); int r = l + thisword.length(); if (l == -1) break; k = l + 1; style.setSpan(new ForegroundColorSpan(Color.RED),l,r, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); } text.setMovementMethod(ScrollingMovementMethod.getInstance()); text.setHorizontallyScrolling(true); text.setText(style); } } catch (IOException e) { TextView text = (TextView) findViewById(R.id.t); ans = "抱歉,你输入的内容不在唐诗三百首当中!"; text.setText(ans); } }
四. 测试结果
(1)初始界面(2)运行界面
相关文章推荐
- Android简单的软件app更新升级
- licecap软件——简单做出app的效果gif图
- 我写了一个简单的APP,用到了数据库,在程序中我自动建立了一个数据库,可以在File Explorer中找到,然后我把软件安装到虚拟机可以运行。
- 简单5步说清App软件在线开发、App制作多少钱?
- 杀毒软件的简单实现 -- quoted
- 测试杀毒软件是否有效的最简单和安全的方法
- SmartAssembly,用一行代码和简单的配置文件,几分钟轻松搞定客户端软件的自动升级。
- [JS脚本][实用小软件]一个简单的汉字简体繁体转换工具源代码
- 软件实施:别把我想简单了
- 软件开发中的矛盾——一个简单的例子
- [软件发布]:简单数据库查询工具 v1.0 For MsSQL(Java版本)
- 杀毒软件的简单实现
- 采用开源软件搭建WebGIS系统(2)最简单的Demo
- [软件升级]简单图片浏览器 v1.21
- 最简单的软件封面制作方法
- [软件发布]:简单图片浏览器 v1.0
- VB2005开发简单WindowsApp与2003几乎没有差别
- 简单软件度量流程图
- sharpziplib是一个不错的在线压缩软软件.用VB.net简单写了个使用代码!
- Nero 软件各种组件简单介绍