Ich versuche, eine TextView mit dem Hintergrundbild zu skalieren. Ich habe eine Klasse, die die Textview-Klasse erweitert, und als solche wird hinzugefügt:Android setTextSize TextView verschiebt Grundlinie und schneidet Texthöhe ab
MyCustomTextView tv2 = new MyCustomTextView(this);
RelativeLayout.LayoutParams lparams = new
RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
lparams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
tv2.setLayoutParams(lparams);
myLayout.addView(v);
und ich bin Zoomen wie so in meiner benutzerdefinierten Textview-Klasse:
public float getScaledTextHeight()
{
float textHeightDPI = initial_size/windowHeight_inDPI;
float textOnScreenHeight = textHeightDPI * windowHeight_inDPI;
float scaledText = textOnScreenHeight * mZoom;
return scaledText;
}
public void setZoomTextHeight(float zoom)
{
mZoom = zoom;
image_size = getScaledTextHeight();
float mX = ((offset_x + img_offset_x) * mZoom);
float mY = ((offset_y + img_offset_y) * mZoom);
RelativeLayout.LayoutParams position1 =
(android.widget.RelativeLayout.LayoutParams)this.getLayoutParams();
position1.leftMargin = (int)mX;
position1.topMargin = (int)mY;
position1.bottomMargin = (int)(window_height - (position1.topMargin +
image_size + 16));
this.setLayoutParams(position1);
setTextSize(TypedValue.COMPLEX_UNIT_PX , image_size);
invalidate();
}
Was am Ende passiert ist, dass machen Der größere Text passt die Größe des TextView korrekt an, aber wenn der Text verkleinert wird, bleibt die gleiche Grundlinie erhalten, wie wenn sie groß wäre. Es fängt an, meinen Text von unten nach oben zu schneiden.
Meine Frage ist, wie kann ich die Basislinie verschieben, damit die Unterseite nicht während der Größenänderung abgeschnitten wird.
Vielen Dank im Voraus.
Arbeitete gut für mich! Was zum Teufel geht hier vor, um das zu machen? – Glenn
@Glenn der Grund, warum dies funktioniert, ist, weil Sie setMovementMethod versehentlich set android: bufferType = "spannable", die eine Verschiebung der Baseline erwartet. – whiskeyjoe