我发现了很多关于如何子类化 textview 和垂直显示文本的信息。
我正在尝试在文本旁边显示一颗星,但我遇到了问题。也许你对此有一些想法。
子类:
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);
不显示星号。只有空格。和想法???
子类在列表视图中使用。在特定条件下,列表视图的一项我想在它旁边放一个星,所以**我认为我必须通过代码来完成。