自定义ImageSwitcher实现更新图片切换效果

 最近,做项目,发现很多软件,都到更换图标,一个切换效果,从上到下切换之类的。于是用ImageSwicher实现了下。比较简单。
直接看代码。(当然我还没放进项目里。测试了效果还是不错。)

 
< RelativeLayout  xmlns:android = "http://schemas.android.com/apk/res/android"
     xmlns:tools = "http://schemas.android.com/tools"
     android:layout_width = "match_parent"
     android:layout_height = "match_parent"  >
使 View
     < com. example. MyImageSwitcher
         android:id = "@+id/imageSwitcher"
         android:layout_width = "100dp"
         android:layout_height = "100dp"
         android:layout_marginTop = "10dp"  />
     < Button
         android:id = "@+id/btn1"
         android:layout_below = "@+id/imageSwitcher"
         android:layout_width = "fill_parent"
         android:layout_height = "wrap_content"
         android:layout_marginTop = "150dp"
         android:text = "Next"  />
</ RelativeLayout >
 
public  class  MyImageSwitcher  extends  ImageSwitcher {
     private  Context  context;
     public  MyImageSwitcher( Context  context) {
         super( context);
         // TODO Auto-generated constructor stub
    }
     public  MyImageSwitcher( Context  contextAttributeSet  attrs) {
         super( contextattrs);
         // TODO Auto-generated constructor stub
         this. context  =  context;
         initImageSwitcher();
    }
     private  void  initImageSwitcher() {
         // TODO Auto-generated method stub
         Animation  in  =  AnimationUtils. loadAnimation( context,
                   android. R. anim. slide_in_left);
         Animation  out  =  AnimationUtils. loadAnimation( context,
                   android. R. anim. slide_out_right);
         setInAnimation( in);
         setOutAnimation( out);
         setFactory( new  ViewFactory() {
             @ Override
              public  View  makeView() {
                   // TODO Auto-generated method stub
                   ImageView  myImage  =  new  ImageView( context);
                   myImage. setScaleType( ImageView. ScaleType. FIT_CENTER);
                   LayoutParams  params  =  new  ImageSwitcher. LayoutParams(
                             LayoutParams. MATCH_PARENTLayoutParams. MATCH_PARENT);
                   myImage. setLayoutParams( params);
                   return  myImage;
             }
        });
    }
}
 
 
  切换文字。。。同理。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
public  class  MyTextSwitcher  extends  TextSwitcher {
     private  Context  context;
     public  MyTextSwitcher( Context  context) {
         super( context);
         // TODO Auto-generated constructor stub
    }
     public  MyTextSwitcher( Context  contextAttributeSet  attrs) {
         super( contextattrs);
         // TODO Auto-generated constructor stub
         this. context  =  context;
         initImageSwitcher();
    }
     private  void  initImageSwitcher() {
         // TODO Auto-generated method stub
         Animation  in  =  AnimationUtils. loadAnimation( context,
                   android. R. anim. slide_in_left);
         Animation  out  =  AnimationUtils. loadAnimation( context,
                   android. R. anim. slide_out_right);
         setInAnimation( in);
         setOutAnimation( out);
         setFactory( new  ViewFactory() {
             @ Override
              public  View  makeView() {
                   // TODO Auto-generated method stub
                   TextView  myText  =  new  TextView( context);
                   myText. setGravity( Gravity. TOP |  Gravity. CENTER_HORIZONTAL);
                   myText. setTextSize( 42);
                   myText. setTextColor( Color. RED);
                   return  myText;
             }
        });
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

重播

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值