我有一个包含一些textView和按钮的LinearLayout。 textView中的文本大于视图。我的愿望是在这些文本视图上执行TranslateAnimation,让它们从右侧快速滚动,然后退出左侧。
问题是如果文本最初大于而不是视图,则文本会被裁剪。我首先查看了这篇文章here,但文字被裁剪了。我已经使文本可滚动,这是有效的。但是,它取决于用户实际滚动它。我也试过一个选框,但它没有我想要的效果。
以下是布局代码的一部分:
<TextView
android:text="@string/try_your"
android:id="@+id/textView2"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="5dip"
android:paddingBottom="25dip"
android:textSize="24sp"
android:textStyle="bold"
android:singleLine = "true"
/>
以下是TranslateAnimation的代码:
public void performLineAnimation1(int fade) {
View think_you = findViewById(R.id.textView4);
TranslateAnimation slide = new TranslateAnimation(600.0f, -400.0f, 0.0f, 0.0f);
slide.setDuration(7000);
think_you.startAnimation(slide);
((TextView) think_you).setTextColor(getResources().getColor(R.color.white));
//slide.setFillEnabled(true);
}
我甚至试图通过让onDraw方法以更小的像素(sp)绘制textView然后稍后将其放大来“欺骗”它,但这不起作用。
TranslateAnimation具有我想要的效果,但我无法让它发挥作用。有人有什么建议吗?
非常感谢。
瑞克
答案 0 :(得分:2)
好的,这就是我做的,
我将布局代码更改为:
<TextView
android:text=""
android:id="@+id/textView2"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="5dp"
android:paddingTop="25dp"
android:paddingBottom="100dp"
android:textSize="12sp"
android:singleLine = "true"
android:scrollHorizontally="true"
android:textColor="@color/clear"
/>
java代码:
Animation a = AnimationUtils.loadAnimation(this, R.anim.translatescale);
Think_you.startAnimation(a);
a.setFillAfter(true);`
translatescale.xml
<?xml version="1.0" encoding="utf-8"?>
<set
xmlns:android="http://schemas.android.com/apk/res/android">
<translate
android:fromXDelta="100%"
android:toXDelta="-120%"
android:fromYDelta="0%"
android:toYDelta="0%"
android:duration="10000"
android:zAdjustment="top" />
<scale
android:fromXScale="1.0"
android:fromYScale="1.0"
android:toXScale="2.0"
android:toYScale="2.0"
android:duration="3"></scale>
</set>
所以,我所做的就是有点笨拙......我把文字大小做得很小,以便它适合将要显示的视图。然后我使用动画集来执行比例和TranslateAnimation。我制作了缩放动画,使文本达到我想要的大小,然后让它表现得非常快(3 mS),然后像我想要的那样执行translateAnimation。这些作品,但似乎相当狡猾。但我找不到另一种方法 - 做一个选框,制作可滚动的东西 - 似乎没有这样做。
如果有人有另一种解决方案,我不介意听到它。
然而,在动画制作之前,屏幕右侧会出现快速故障,但我愿意接受它。
谢谢,
瑞克