【发布时间】:2012-07-11 14:41:45
【问题描述】:
我找到了很多关于如何子类化 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);
不显示星号。只有空格。 和想法???
子类用于列表视图。 在特定条件下,列表视图的一项我想在它旁边放一个星,所以**我认为我必须通过代码来完成。
【问题讨论】:
-
只使用复合可绘制对象
-
你能详细说明一下吗??
-
放弃了这个想法。无法正常工作。
标签: android android-imageview textview