您的位置:首页 > 移动开发

“飞花令”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)运行界面

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  app