Мне нужно создать программу для чтения электронных книг на экзамене:
Когда мы нажимаем на файл ..
private void onFileClick(Option o){
Toast.makeText(this, "File Clicked: "+o.getName(), Toast.LENGTH_SHORT).show();
BookView.readBook(o);
Intent intent = new Intent(this,BookView.class);
this.startActivityForResult(intent, 1000);
}
Затем читаем содержимое текстового файла:
static void readBook(Option o){
try{
File f = new File(Environment.getExternalStorageDirectory()+"/"+o.getName());
FileInputStream fileIS = new FileInputStream(f);
BufferedReader buf = new BufferedReader(new InputStreamReader(fileIS));
String readString = new String();
int i = 0;
monArrayList.clear();
stringBuilder = new StringBuilder();
while((readString = buf.readLine())!= null){
i=i+1;
int stringLength = stringBuilder.length();
stringBuilder.append(readString);
if(stringLength>=1040){
monArrayList.add(new String(stringBuilder));
stringBuilder.setLength(0);
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
}
Затем мы начинаем деятельность:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
detector = new GestureDetector(this,this);
view1 = (ViewFlipper)findViewById(R.id.flipper);
Iterator<String> iterator = monArrayList.iterator();
while (iterator.hasNext()) {
String element = iterator.next();
view1.addView(createTextView(element));
}
view1.addView(createTextView(stringBuilder));
slideLeftIn = AnimationUtils.loadAnimation(this, R.anim.slide_left_in);
slideLeftOut = AnimationUtils.loadAnimation(this, R.anim.slide_left_out);
slideRightIn = AnimationUtils.loadAnimation(this, R.anim.slide_right_in);
slideRightOut = AnimationUtils.loadAnimation(this, R.anim.slide_right_out);
layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
BitmapDrawable bmp = (BitmapDrawable)this.getResources().getDrawable(R.drawable.back);
layout.setBackgroundDrawable(bmp);
layout.setPadding(20, 20, 20, 20);
}
В настоящее время это работает, но это не красиво. Я сохранил страницы своей книги в ArrayList, ограничив запись 1040 символами.
Страницы не выполнены интеллектуально (некоторые страницы только на 3/4). Это связано с тем, что моя программа не включает обнаружение перевода строки и возврата каретки ..
Я хотел бы адаптировать свой текст к моему textView, чтобы они совпадали.
Как узнать, сколько текста может поместиться в моем textView (моей странице)?
Спасибо