我创建的应用程序可以读取杂志中的文章。所以我需要为那本杂志制作“页面”。
我的问题是准确计算我可以在页面中显示多少文字(字符)。好吧,我有代码,我可以做约+ - 2行取决于文本。我不担心那些+ - 2行,但是关于那个文本可以在屏幕宽度的中间某处切割,我想在屏幕右侧对齐它的breakText。
http://img.exs.lv/z/i/ziloniic/Screenshot_2013-07-22-12-51-12.png
如果我为一个文本获得理想的screenWidth,它将无法用于其他文本。所以它并不是真的取决于屏幕参数。
http://img.exs.lv/z/i/ziloniic/andscrns.png
在屏幕截图中,我应该让文字更长或更短
Display display = getWindowManager().getDefaultDisplay();
int height = display.getHeight();
int width = display.getWidth();
int screen_sq = height * width;
float space = (float) ((screen_sq)-(width*0.1+height*0.1))/52 ; // kinda interesting way to support different screens
final float density = getResources().getDisplayMetrics().density;
final float scaledPx = 17 * density + 0.5f;
Paint p = new Paint();
p.setSubpixelText(true);
p.setTextSize(scaledPx);
while(charsShowed < content.length()){
breakpos = p.breakText(content, charsShowed, content.length(), true, space, null);
try { // try block is to avoid breaking text middle of word
if(!Character.isSpaceChar(content.charAt(charsShowed + breakpos))){
while(!Character.isSpaceChar(content.charAt(charsShowed + breakpos -1))){
breakpos--;
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
list.add(content.substring(charsShowed, charsShowed+breakpos));
Pages.article_data.add(new Pages.Data(list.get(part_counter), null));
charsShowed += breakpos;
part_counter++;
}
寻找一些如何制作格式正确的文字的想法。 对不起,无法发布图片。