Implement a TextView with an animation in its left side.

原创 2013年12月05日 11:18:55

In my case, I want to write a TextView with an animation in its left side.

ImageView + TextView could work but it’s not frugal enough.

TextView with drawableLeft would be the best option.

<TextView
     … …
     android:drawablePadding=”10dip”
     android:drawableLeft=”@drawable/loadingicon” />

But above implementation just show a icon in the left of TextView, not an animation.

How to show an animation instead of a icon?

Assume you have 4 pictures which would be an animation if display them one after one. Then define animation xml in res/anim folder in your project.

loading_animation.xml:

<animation-list xmlns:android=”http://schemas.android.com/apk/res/android”
      android:oneshot=”false” >
      <item
           android:drawable=”@drawable/loading_1″
           android:duration=”500″>
       </item>
       <item
            android:drawable=”@drawable/loading_2″
            android:duration=”500″>
        </item>
        <item
             android:drawable=”@drawable/loading_3″
             android:duration=”500″>
        </item>
</animation-list>

android:oneshot” determines whether or not play the animation just once.
android:duration” determines the duration of pictures switching.

Then in layout xml, use above animation like this:

<TextView
      … …
      android:drawablePadding=”10dip”
      android:drawableLeft=”@anim/loading_animation” />

Bingo? no, no, no, the animation can not switching yet.

You need to do more.

In java/Activity code, you must get the animation drawable and start it.

Drawable[] draws = locateAreaTextView.getCompoundDrawables();
if (draws != null && draws.length > 0 && draws[0] instanceof AnimationDrawable) {
       loadingAnimation = (AnimationDrawable) draws[0];
       loadingAnimation.start();
}

In above, we get index 0 of the drawable array since drawableLeft is in 0 position of the array.

Now, the animation works. But there is one more trap.

If you put above codes in onCreate() of Activity, draws will be a [null, null, null, null] array.

You must put it in onResumse() of Activity.


版权声明:本文为博主原创文章,未经博主允许不得转载。

CSS3 动画实现方法大全

CSS3动画实现方式大全          .left {     width: 300px;     color: white;     background: #444444;   ...
  • qq_25226029
  • qq_25226029
  • 2016年06月13日 14:20
  • 2336

【Android】自定义控件让TextView的drawableLeft与文本一起居中显示

自定义控件让TextView的drawableLeft与文本一起居中显示 在实际开发中,有时需要在TextView的左边或者右边显示一张图片,我们会是用drawableLeft(drawable...
  • wk843620202
  • wk843620202
  • 2017年03月01日 22:28
  • 1057

动态布局,并使用代码为TextView设置drawableLeft

原问题描述: xml中的textView: [java] view plaincopy         android:id="@+id/book...
  • gao_chun
  • gao_chun
  • 2014年07月05日 11:35
  • 5142

Java7后try-catch块的变化——aotocloseable接口

java7优化了异常捕获机制,增加了aotocloseable接口,try-catch块的写法可以更加简洁了...
  • a472770699
  • a472770699
  • 2015年07月16日 16:15
  • 657

TextView的drawableLeft与文本一起居中显示(以及代码设置drawableLeft)

网上一搜全是自定义控件,其实去看看TextView的属性,就能发现,解决这个问题,直接xml文件中就能搞定,代码如下: ...
  • z358247505
  • z358247505
  • 2015年05月26日 12:13
  • 10922

SAP ITS Mobile 系统实例(一)

SAP ITS Mobile 系统实例(一)
  • champaignwolf
  • champaignwolf
  • 2016年12月20日 20:47
  • 971

【LeetCode-面试算法经典-Java实现】【028-Implement strStr() (实现strStr()函数)】

[【028-Implement strStr() (实现strStr()函数)】](028-Implement strStr() (实现strStr()函数))【LeetCode-面试算法经典-Jav...
  • DERRANTCM
  • DERRANTCM
  • 2015年07月25日 08:08
  • 2633

android动画案例,淡入淡出效果

源代码下载 1、android动画测试程序,界面如图: 颜色随机变化,点击视图,左淡出,右淡入,下淡出,上淡入效果。 主要源代码解析: package com.example.objectani...
  • hailushijie
  • hailushijie
  • 2013年03月18日 22:08
  • 4666

Stack_Queue 一个数组实现三个栈 @CareerCup

原文: Describe how you could use a single array to implement three stacks. 译文: 你如何只用一个数组实现三个栈...
  • hellobinfeng
  • hellobinfeng
  • 2014年03月01日 11:35
  • 1742

GIC ITS 学习笔记(一)

GIC ITS NOTE 1
  • scarecrow_byr
  • scarecrow_byr
  • 2015年10月19日 22:57
  • 914
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Implement a TextView with an animation in its left side.
举报原因:
原因补充:

(最多只允许输入30个字)