
StefMa
Dauer-User
- 450
Hi,
ich bekomme einen nicht vorhersehbaren Text dessen Länge ich nicht kenne.
Als Layout habe ich nur ein RelativeLayout mit einem TextView drin.
Ich möchte, dass ich verschieden Seiten habe. Also kann ich nicht einfach dem TextView den kompletten Text geben. Ich müsste den Text zerkleinern.
Ich habe überhaupt keine Ahnung wie ich das anstellen soll. Kann mir da jemand helfen? Kleinen Denkanstoß?
Ich müsste ja quasi dem TextView den Text geben. Dann müsste ich iwie herausfinden, wann der Text am unterem Rand (bzw. vor der SplitActionBar) ankommt. Ab dort abschneiden. Wie bekomme ich das hin?
Danke und Gruß
Ice
Der ursprüngliche Beitrag von 17:18 Uhr wurde um 17:45 Uhr ergänzt:
Habe eine Lösung gefunden:
Habe ich auf stackoverflow gefunden und für mich angepasst. Funktioniert aber 1a
Gruß
ich bekomme einen nicht vorhersehbaren Text dessen Länge ich nicht kenne.
Als Layout habe ich nur ein RelativeLayout mit einem TextView drin.
Ich möchte, dass ich verschieden Seiten habe. Also kann ich nicht einfach dem TextView den kompletten Text geben. Ich müsste den Text zerkleinern.
Ich habe überhaupt keine Ahnung wie ich das anstellen soll. Kann mir da jemand helfen? Kleinen Denkanstoß?
Ich müsste ja quasi dem TextView den Text geben. Dann müsste ich iwie herausfinden, wann der Text am unterem Rand (bzw. vor der SplitActionBar) ankommt. Ab dort abschneiden. Wie bekomme ich das hin?
Danke und Gruß
Ice
Der ursprüngliche Beitrag von 17:18 Uhr wurde um 17:45 Uhr ergänzt:
Habe eine Lösung gefunden:
Code:
// obtaining screen dimensions
TextView tv = (TextView) findViewById(R.id.textview_content);
int screenHeight = tv.getHeight()-100;
int screenWidth = tv.getWidth();
int totalPages = 0;
while (contentString != null && contentString.length() != 0)
{
totalPages ++;
// creating new textviews for every page
TextView contentTextView = new TextView(this);
contentTextView.setWidth(ViewGroup.LayoutParams.FILL_PARENT);
contentTextView.setHeight(ViewGroup.LayoutParams.FILL_PARENT);
contentTextView.setMaxHeight(screenHeight);
contentTextView.setMaxWidth(screenWidth);
float textSize = contentTextView.getTextSize();
Paint paint = new Paint();
paint.setTextSize(textSize);
int numChars = 0;
int lineCount = 0;
int maxLineCount = screenHeight/contentTextView.getLineHeight();
contentTextView.setLines(maxLineCount);
while ((lineCount < maxLineCount) && (numChars < contentString.length())) {
numChars = numChars + paint.breakText(contentString.substring(numChars), true, screenWidth, null);
lineCount ++;
}
// retrieve the String to be displayed in the current textbox
String toBeDisplayed = contentString.substring(0, numChars);
contentString = contentString.substring(numChars);
contentTextView.setText(toBeDisplayed);
// flipper.addView(contentTextView);
Log.e("LOG", toBeDisplayed);
chapterContentList.add(toBeDisplayed);
numChars = 0;
lineCount = 0;
}
Habe ich auf stackoverflow gefunden und für mich angepasst. Funktioniert aber 1a
Gruß