Android 采用线程方法动态显示文字
2016-01-15 20:18
447 查看
今天在学习Android的时候,不知怎么就突然想到了一个动态跳出显示内容的法子,感觉不难,想实现它,搜了搜资料,就完成了一个使句子中的字一个个跳出的Demo如下图所示:
句子太长截取了其中一部分
实现此功能需要实现两个步骤:
1 读文件,把文件中的内容显示在组件上
详细的读写文件的方法如下地址:/article/5709694.html(转别人博客写的) ,在此我不做详细的解释。
2 线程实现间隔时间跳出文字
句子太长截取了其中一部分
实现此功能需要实现两个步骤:
1 读文件,把文件中的内容显示在组件上
<span style="font-size:18px;">package com.example.jumpword; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import android.util.Log; /** * 按字节读 , 按字符读, 按行读 * @author jsjxy * */ public class readword { //处理字节流的超类 /*inputstream , outputstream; //处理字符流的抽象类,(但是会把把字符流转化为字节流) inputstreamreader, outputstreamwriter*/ /* 缓冲方式文本读取,缓冲方式文本写入 * 从输入流中读取文本, 从文本写入输出流 */ //BufferedReader , BufferedWriter private static final String TAG = null; File file ; //得到地址 InputStreamReader inputstream; //把内存中的内容解析出来 FileInputStream fileinputstream; //把地址所指向的文件内容读取到内存中 BufferedReader reader ; //输出,转化为IO能够识别的数据 int word; String sentence = ""; public readword(){ } //读txt文件的位置,从txt文件中每次读一个字符 public String readword (String path) throws IOException{ file = new File(path); inputstream = new InputStreamReader(new FileInputStream(file),"GBK"); reader = new BufferedReader(inputstream); while(( word = reader.read() )!=-1){ // System.out.println((char) word); //每次读一个字符 Log.i(TAG, (char)word+""); sentence += (char)word; } return sentence; } //写txt文件 public void writeword(String path) throws IOException{ file = new File(path); FileOutputStream outputstream = new FileOutputStream(file); String content = "写入文件的方法"; outputstream.write(content.getBytes()); } }</span>
详细的读写文件的方法如下地址:/article/5709694.html(转别人博客写的) ,在此我不做详细的解释。
2 线程实现间隔时间跳出文字
package com.example.jumpword; import java.io.File; import java.io.IOException; import android.support.v7.app.ActionBarActivity; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.widget.TextView; public class MainActivity extends Activity { protected static final String TAG = null; private TextView Word; // 显示一个字 private readword read = new readword(); //读取文件的对象 private File file; private String sentence; //返回的读取信息 private String jiequchuan ; //截取的字符串 private int i = 1; //截取的位置索引 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); file = Environment.getExternalStorageDirectory(); //地址相当于 “/sdcard.....” try { sentence = read.readword(file + "/hhh.txt"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Word = (TextView)findViewById(R.id.showword); new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub while(i < sentence.length()) { try { Thread.sleep(300); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } jiequchuan = sentence.substring(0, i); //截取字符串方法,从0位置到i位置 runOnUiThread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub Word.setText(jiequchuan); } }); i++; } } }).start(); } @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; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } }以上为实现的主要核心方法,源代码地址如下:http://download.csdn.net/detail/danielntz/9405914
相关文章推荐
- 【源代码】基于Android和蓝牙的单片机温度採集系统
- Android:Sqlitedatabase学习小结
- 通过adb命令向Android模拟器中导入通讯录联系人
- android锁屏分析
- 通过adb命令向Android模拟器中导入通讯录联系人
- android Volley 上传文件上传图片
- Android应用开发之自定义View触摸相关工具类全解
- android Toast大全(五种情形)建立属于你自己的Toast
- 七牛关于Android SDK jar包依赖情况总结
- android.intent.category.DEFAULT
- 情景学习Android中的LruCache
- 译android framework层的资源文件
- Android 卫星弹出式界面(ViewGroup)
- Android string.xml 显示特殊符号
- Android Studio 导入 Eclipse 的代码后,注释和运行时中文显示乱码
- Android 从输入法 到 EditText 研究
- Android GPU加速渲染自定义View 性能改善<13>
- Android ADB命令大全(通过ADB命令查看wifi密码、MAC地址、设备信息、操作文件、查看文件、日志信息、卸载、启动和安装APK等)
- Android Studio 快捷键一览表
- android 拨打特殊字符电话号码