2015-04-01 55 views
0

我使用TextView在ListView項目中查看,當單擊該項目時,我需要該文本完全被查看而不是前兩行。Android setMaxLines動畫

我現在正在做的是將maxLines值從2(初始值)更改爲最大整數值。

我需要使用擴展動畫來完成此操作。我已經知道如何擴展它,但我只需要找到新的高度,以便我可以簡單地調用expand方法。

更新: 我使用此代碼來解決我的問題,但返回的全高小於實際的高度。我認爲這是px和dp問題:

public int getFullHeight(TextView tv) { 
    Context context = tv.getContext(); 
    TextView textView = new TextView(context); 
    textView.setText(tv.getText().toString()); 
    textView.setTypeface(tv.getTypeface()); 
    textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, tv.getTextSize()); 
    int widthMeasureSpec = View.MeasureSpec.makeMeasureSpec(tv.getLayoutParams().width, View.MeasureSpec.EXACTLY); 
    int heightMeasureSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); 
    textView.measure(widthMeasureSpec, heightMeasureSpec); 
    return textView.getMeasuredHeight(); 
} 

鑑於tv是原始TextView,它有2行。 如果我將COMPLEX_UNIT_PX更改爲COMPLEX_UNIT_DIP,那麼它會比整個大小更大,底部有一個空白區域。

回答

0

我能找到的最好的解決辦法是這樣的: Measuring text height to be drawn on Canvas (Android) 或者在這裏:http://egoco.de/post/19077604048/calculating-the-height-of-text-in-android

,他們正在做的是,創建與指定寬度的噴漆的對象,將文本和樣式在其使用,然後歌廳邊界。

希望幫助

+0

請檢查我的更新 – 2015-04-01 11:16:00

+0

對不起,我沒有那麼深的GUI開發。但是,當你看到一個模式的差異,可以計算像x一行一行左右。然後你可以計算你自己的差異。 – 2015-04-01 11:20:05