覆盖按钮以颠倒绘制文本
Override Button to draw text upside down
我怎样才能覆盖 Button
class 来颠倒绘制文本?当按钮本身旋转时,我使用的其他库的格式搞砸了,但我需要翻转文本。
我不熟悉 onDraw
方法,我不确定如何为此制作一个 subclass。
感谢任何帮助,谢谢!
您可以像这样在按钮中使用旋转属性:
<Button
android:id="@+id/test_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="text button"
android:rotation="180"/>
或者如果您更喜欢使用自定义按钮,您可以像这样创建它:
public class FlippedTextButton extends Button {
public FlippedTextButton(Context context) {
super(context);
}
public FlippedTextButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public FlippedTextButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.save();
float y = this.getHeight() / 2.0f;
float x = this.getWidth() / 2.0f;
canvas.rotate(180, x, y);
super.onDraw(canvas);
canvas.restore();
}
}
然后你可以使用它:
<!-- Change to your class package name. -->
<com.example.flippedtext.FlippedTextButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Flipped text"/>
这是 github 上的示例项目:https://github.com/isnotmenow/FlippedText
我怎样才能覆盖 Button
class 来颠倒绘制文本?当按钮本身旋转时,我使用的其他库的格式搞砸了,但我需要翻转文本。
我不熟悉 onDraw
方法,我不确定如何为此制作一个 subclass。
感谢任何帮助,谢谢!
您可以像这样在按钮中使用旋转属性:
<Button
android:id="@+id/test_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="text button"
android:rotation="180"/>
或者如果您更喜欢使用自定义按钮,您可以像这样创建它:
public class FlippedTextButton extends Button {
public FlippedTextButton(Context context) {
super(context);
}
public FlippedTextButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public FlippedTextButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onDraw(Canvas canvas) {
canvas.save();
float y = this.getHeight() / 2.0f;
float x = this.getWidth() / 2.0f;
canvas.rotate(180, x, y);
super.onDraw(canvas);
canvas.restore();
}
}
然后你可以使用它:
<!-- Change to your class package name. -->
<com.example.flippedtext.FlippedTextButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Flipped text"/>
这是 github 上的示例项目:https://github.com/isnotmenow/FlippedText