elg*_*oog 9 android android-widget android-animation android-canvas
我想在我的应用程序中复制以下内容:

如您所见,它基本上是一个按钮,用于增加/减少其中包含的文本视图的值.此按钮将具有三种视觉状态 - >未按下,减少和增加(如上图所示,用户点击增加箭头,按钮显示在该侧按下)
这是我目前的3个按钮状态:

正如您所看到的,我遇到的问题是能够正确地倾斜/旋转文本视图,使其看起来视觉上正确,并且当按钮增加或减少时,它与按钮一起倾斜.
到目前为止,我尝试了两种不同的方法:
创建一个自定义文本视图类,该类重写onDraw()倾斜画布的方法:
@Override
public void onDraw(Canvas canvas) {
canvas.save();
canvas.skew(0.2f, 0f);
super.onDraw(canvas);
canvas.restore();
}
Run Code Online (Sandbox Code Playgroud)集成Rotate3dAnimation类(源于此处)并使用许多不同的变体来获得所需的结果,例如:
Rotate3dAnimation skew = new Rotate3dAnimation(
30, 0, centerX, centerY, 0, false);
txtAmount.startAnimation(skew);
Run Code Online (Sandbox Code Playgroud)不幸的是,我没有得到完全反映上面第一张图片的结果.我对使用Z轴,倾斜,旋转等设置值感到困惑.
我非常感谢任何有这方面经验的人的帮助.提前致谢
好吧,我甚至尝试过,我想出了类似的东西:
public class DemoActivity extends TextView {
Context context;
String firstText = "$120.00";
public DemoActivity(Context context)
{
super(context);
this.context = context;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
setText(firstText);
setTextSize(30);
canvas.skew(1.0f, 0.3f); //you need to change values over here
Rotate3dAnimation skew = new Rotate3dAnimation(
-20, 30,200, 200, 0, false); //here too
startAnimation(skew);
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个输出:

我想通过反复试验来改变这些值可以解决您的问题.希望能帮助到你.
| 归档时间: |
|
| 查看次数: |
3875 次 |
| 最近记录: |