我有一个LinearLayout,其中包含一些textViews和按钮。 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具有我想要的效果,但我无法使其正常工作。有人有什么建议吗?
非常感谢。
里克
最佳答案
好,这就是我所做的
我将布局代码更改为:
<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);`
translationscale.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。这些作品,但似乎很笨拙。但是我找不到另一种方法-做一个字幕,使某些东西可滚动-似乎没有。
如果有人有其他解决方案,我也不会介意。
但是,在动画制作之前,屏幕的右侧会有一个小故障,但我愿意忍受。
谢谢,
里克
关于android - 如何执行大于 View 的textView的TranslateAnimation,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7004861/