2012-04-12 72 views
2

我正在嘗試使用背景圖像調整TextView的大小。我有一個擴展的TextView類的類,並添加這樣:​​Android setTextSize TextView移動基線並切斷文本高度

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); 

,我縮放,像這樣在我的自定義的TextView類:

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(); 
    } 

什麼最終情況是,使更大的文本將正確調整TextView的大小,但使文本變小會保持與大時相同的基線。它開始將我的文本從底層開始削減。

我的問題是,如何移動底線,以便在調整大小時底部不會被切斷。

在此先感謝。

回答

1

通過在構造函數中添加它來修復它。設置垂直滾動條工作得很好。

this.setVerticalScrollBarEnabled(true); 
    this.setMovementMethod(new ScrollingMovementMethod()); 
+0

非常適合我!爲了完成這項工作,這裏到底發生了什麼? – Glenn 2012-04-20 18:36:17

+1

@Glenn這個工程的原因是因爲通過調用setMovementMethod你無意設置了android:bufferType =「spannable」,它預計會有一個變化的基線。 – whiskeyjoe 2012-05-25 15:03:42

2

我的(非)移位基線問題通過將緩衝區類型設置爲spannable來解決。這可以通過兩種方式完成。任一組緩衝器類型以xml:

android:bufferType="spannable" 

或呼叫與合適的緩衝液類型設置文本代碼:

setText(getText(),BufferType.SPANNABLE); 

通過設置BufferType到spannable,TextView的將相應地自動復位的基線。這會產生非常小的性能成本。

+0

這也適用於我!謝謝。 – Glenn 2012-05-29 16:41:32

+0

我所有的尊敬Whiskeyjoe先生,我一直在努力解決這個問題好幾天...... – Maragues 2012-10-19 19:25:00

相關問題