如何在Android中设置按钮文字动画?

时间:2014-05-05 13:29:10

标签: android button text android-animation

我有一个带有文字的按钮,这个文字可能很大,因此它不适合按钮宽度,所以,我希望该文本在该按钮中水平动画,如果可能的话我需要在Button的特定部分进行动画处理,因为其他部分将被Button Background图像占用:

enter image description here

这就是问题所在:

enter image description here

我想申请的解决方案:

enter image description here enter image description here

这就是我尝试过的但是没有用的东西:

<Button
    android:id="@+id/button1"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:layout_gravity="center"
    android:adjustViewBounds="true"
    android:layout_margin="3dp"
    android:gravity="left"
    android:background="@drawable/bg"
    android:textAlignment="center"
    android:text="Text Here Is Large"
    android:scrollHorizontally="true"
    android:ellipsize="marquee"
    android:marqueeRepeatLimit="marquee_forever"
    android:lines="1"
    android:textSize="14sp"
    android:textColor="@android:color/white"
    android:paddingBottom="5dp"
    android:paddingLeft="3dp"
    android:paddingRight="3dp"
    android:paddingTop="5dp"
    android:clickable="true"
    android:tag="tag1" />

3 个答案:

答案 0 :(得分:0)

添加以下行应该使选框效果起作用:

android:singleLine="true"

答案 1 :(得分:0)

  

如果某个按钮具有焦点,则会运行选框。

重要:

android:singleLine=”true”
android:ellipsize=”marquee”

可选

android:marqueeRepeatLimit=”1″
XML中的

 <Button
    android:layout_width="150dip" 
    android:layout_height="wrap_content"
    android:text="My button with a long text for marquee as a example source code"
    android:singleLine="true"
    android:ellipsize="marquee"
    android:marqueeRepeatLimit="1"/>

答案 2 :(得分:0)

好吧,我通过将带有自定义TextView的Button放在FrameLayout中来解决它,这个自定义TextView来自Here,以下是我如何制作它:

<FrameLayout
  android:layout_width="match_parent"
  android:layout_height="0dp"
  android:layout_margin="3dp"
  android:layout_weight="1" >

  <Button
    android:id="@+id/button1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:adjustViewBounds="true"
    android:background="@drawable/some_image"
    android:clickable="true"
    android:tag="button1_tag" />

  <com.example.ScrollingTextView
    android:id="@+id/button1_name"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ellipsize="marquee"
    android:lines="1"
    android:marqueeRepeatLimit="marquee_forever"
    android:paddingBottom="5dp"
    android:paddingLeft="2dp"
    android:paddingRight="26dp"
    android:paddingTop="3dp"
    android:singleLine="true"
    android:text="zone1"
    android:textColor="@android:color/white"
    android:textSize="14sp" />

</FrameLayout>