2012-07-11 69 views
0

我發現了很多關於如何子類化文本視圖的信息。垂直顯示文本&。android垂直textview與圖像旁邊

Iam試圖在文本旁邊顯示一顆星,並發現問題。也許你對此有一些想法。

子類:

public class VerticalTextView extends TextView 
    { 
final boolean topDown; 

public VerticalTextView(Context context, AttributeSet attrs) 
{ 
    super(context, attrs); 
    final int gravity = getGravity(); 
    if (Gravity.isVertical(gravity) 
      && (gravity & Gravity.VERTICAL_GRAVITY_MASK) == Gravity.BOTTOM) 
    { 
     setGravity((gravity & Gravity.HORIZONTAL_GRAVITY_MASK) 
       | Gravity.TOP); 
     topDown = false; 
    } 
    else 
    { 
     topDown = true; 
    } 
} 

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) 
{ 
    super.onMeasure(heightMeasureSpec, widthMeasureSpec); 
    setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth()); 
} 

@Override 
protected void onDraw(Canvas canvas) 
{ 
    TextPaint textPaint = getPaint(); 
    textPaint.setColor(getCurrentTextColor()); 
    textPaint.drawableState = getDrawableState(); 

    canvas.save(); 

    if (topDown) 
    { 
     canvas.translate(getWidth(), 0); 
     canvas.rotate(90); 
    } 
    else 
    { 
     canvas.translate(0, getHeight()); 
     canvas.rotate(-90); 
    } 

    canvas.translate(getCompoundPaddingLeft(), getExtendedPaddingTop()); 

    getLayout().draw(canvas); 
    canvas.restore(); 
} 

}

和蔭設置明星從我的片段驗證碼:

ItemTextView.setCompoundDrawablesWithIntrinsicBounds(0, 0, android.R.drawable.btn_star_big_on, 0); 

沒有明星是displayed.only空白。 和想法?

該子類用於列表視圖。 在一個特定的條件下,我希望在它旁邊有一個星標,因此**我想我必須通過代碼來完成它。

+0

只需使用複合可繪製的那 – 2012-07-11 14:48:48

+0

你能否詳細說明一下? – Ray 2012-07-11 14:51:11

+0

放棄了這個想法。無法讓它工作。 – Ray 2012-07-15 16:20:35

回答

0

嘗試在佈局XML使用TableLayout,然後用其行玩,這是比代碼做更容易。