android准确计算出适合的文本量

时间:2013-07-22 18:33:27

标签: android page-break

我创建的应用程序可以读取杂志中的文章。所以我需要为那本杂志制作“页面”。

我的问题是准确计算我可以在页面中显示多少文字(字符)。好吧,我有代码,我可以做约+ - 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++;


    }

寻找一些如何制作格式正确的文字的想法。 对不起,无法发布图片。

0 个答案:

没有答案