Ray*_*hou 14 java paging android textview android-view
我正在编写一个Android应用程序,它可以读取单个文本文件并将其显示在TextView.
我现在正在做的是将整个文件读入一个字符串(使用BufferedReader和StringBuilder)并在TextView使用时显示它setText(string).一个700KB的文本文件可能需要大约2到3秒才能在屏幕上显示.
但我在市场上使用了其他一些电子书阅读器,他们几乎可以立即显示相同的文字.谁知道我怎么能做到这一点?
谢谢.
编辑:许多建议ListView,但它不适用于我的特定情况.这是我对其中一个答案的回复:... [ListView]由于某些原因对我不起作用.(1)为了使Listview看起来像TextView,我们必须在新行字符上打破文本.如果我加载一个大段落,它就像加载TextView一样慢.(2)由于ListView仅测量屏幕上的项目,因此我无法提前知道整个文本的总"页面"或"高度".
从本质上讲,关键是只在您需要时加载您需要的数据.一种方法是将每个段落放入它自己的TextView中,将其放入ListAdapter中,ListAdapter包含在ListView中.必须有某种索引集,这样每个段落都知道要在数据文件中找到的位置.此界面允许您在需要时仅加载所需内容.你的列表适配器看起来像这样(这段代码不完整,但它应该让你至少知道你应该做什么):
class ParagraphAdapter extends ListAdapter{
ArrayList<Integer> mLocations; // Somewhere define this to your locations, I'll leave that for you to figure out
protected View getView(int position,View convertView, ViewGroup parent)
{
mLocations.get(position); // Read the file starting at this position, until the next value
String text; // This is the output of the above
TextView tv=new TextView(context);
tv.setText(parent.getContext());
}
}
Run Code Online (Sandbox Code Playgroud)
可以注意到,亚马逊使用Kindle应用程序的寻呼系统.如果您有应用程序,则可以在每个页面的底部看到您所在的部分.每个"页面"可能更接近句子的长度.然后,只需要获得正确的页面,这可以很快完成.
| 归档时间: |
|
| 查看次数: |
5914 次 |
| 最近记录: |