Android set

一、xml文件与java结合

set包含set(对应AnimatorSet.objectAnimator(对应ObjectAnimator).animator(对应ValueAnimator)

 

<set>

android:ordering=”together|sequentially”//together同时执行,sequentially顺序执行默认together

<objectAnimator

android:propertyName=”string”//指定动画属性的类型如alpha.scaleXandroid:valueType=”intType|floatType”//变化值类型,floatType默认

android:valueFrom=”float|int|color”//变化开始值,左负右正

android:valueTo=”float|int|color”//变化结束值,左负右正

android:duration=”int”//动画播放时长,单位毫秒

android:startOffset=”int”//动画延时播放事件

android:repeatCount=”2”//重复次数,-1表示无限重复

android:repeatMode=”reverse|repeat”//前提android:repeatCount=-1,reverse反响重复,repeat顺序重复

/>

<animator

...//属性与objectAnimator相同,但一般不用animator

/>

</set>

 

实例:

myAnimator.xml

<set

android:ordering=”sequentially”

>

<set>

<objectAnimator

android:propertyName=”alpha”

android:duraiton=”500”

android”valueTo=”400”

android:valuteType=”intType”

/>

<objectAnimator

android:propertyName=”scaleX”

android:duration=”500”

android:valueTo=”300”

android:valueTyep=”intType”

/>

</set>

<objectAnimator

android:propertyName=”alpha”

android:duration=”500”

android:valueTo=”1f”

/>

</set>

 

 

也可如下

<?xml version=”1.0” encoding=”utf-8”?>

<set>

<alpha

...

/>

<scale

...

/>

...

</set>

详细如下:

1、alpha

<?xml version=”1.0” encoding=”utf-8”?>

<set>

<alpha

xmlns:android=”http://schemas.android.com/apk/res/android”

android:duration=”500”

android:fromAlpha=”1.0”

android:toAlpha=”0.0”

/>

</set>

2、scale

<?xml version=”1.0” encoding=”utf-8”?>

<set>

<scale

xmlns:android=”http://schemas.android.com/apk/res/android”

android:duration=”1000”

android:fromXScale=”0.0”

android:fromYScale=”0.0”

/>

</set>

 

 

 

 

3、translate

<?xml version=”1.0” encoding=”utf-8”?>

<set>

<translate

xmlns:android=”http://schames.android.com/apk/res/android”

android:duration=”1000”

<!--屏幕左上角为原点,右下角坐标为(320480-->

android:fromXDelata=”320”

android:fromYDelate=”480”

android:toXDelta=”0”

android:toYDelta=”0”

/>

</set>

4、rotate

<?xml version=”1.0” encoding=”utf-8”?>

<set>

<rotate

xmlns:android=”http://schames.android.com/apk/res/android”

android:duration=”1000”

android:fromDegerees=”300”

android:toDegress=”-360”

/>

</set>

 

5、其他

android:fillAfter=”true”//动画结束后保持最后的状态

android:fillBefore=”true”//动画结束后保持开始前的状态

android:interpolator=”@android:anim/decelerate_interpolator”//指定动画插入器,加速减速插入器accelerate_decelerate_interpolator,加速插入器accelerate_interpolator,减速插入器decelerate_interpolator

andorid:repeatCount=”1”//重复次数

android:repeatMode=”reverse”//重复模式

android:startOffSet=”0”//重复时间

android:privotX=”50%”//相对屏幕百分比,50%动画从水平居中位置开始,可设置为数值、百分数、百分数p,比如5050%50%p

android:privotY=”50%”//相对屏幕百分比,50%动画从垂直剧中位置开始

 

Java中解析(方法多样)

AnimatorSet set=(AniamtorSet)AnimatorInflater.loadAnimator(myContext,R.animator.myAnimator);//将动画文件解析为AnimatorSet对象

set.setTarget(myObject);//给指定对象添加动画

set.start();//启动动画

或者

Animation animation=AnimationUtils.loadAnimation(myContext,R.animator.myAnimator);

myObject.startAnimation(animation);

AnimationSet可理解为动画集合,Animation为动画

AnimationSet继承自Animation

duration.repeatMode.fillBefore.fillAfterAnimationSet中设置有效并作用所有Animaiton

repeatCount.fillEnabledAnimationSet中设置无效

startOffset.shareInterpolatorAnimationSet中设置有效,但不会作用所有Animation

运用实例:

AnimationSet animation=new AnimationSet(true);

AlphaAniamtion a=new AlphaAnimation(1,0);

RotateAnimation r=new RotateAnimation(0,720,Animation.RELATIVE_TO_SELF,0.5f);

animation.addAnimation(a);

animation.addAniamtion(r);

animation.setDuration(3000);

anim.setStartOffset(1000);

myObject.startAnimation(animation);

 

 

 

二、Java文件

1、alpha

//第一个参数view对象,第二个参数动画改变类型,第三个参数开始透明度,第四个参数结束透明度

ObjectAnimator alpha=ObjectAnimator.ofFloat(viewObject,”alpha”,0f,1f);

alpha.setDuration(2000);//设置动画时间

alpha.setInterpolator(new DecelerateInterpolator());//设置动画插入器,减速

alpha.setRepeatCount(-1);//设置动画重复此处,-1为无限循环

alpha.setRepeatMode(Animation.REVERSE);//设置动画循环模式

alpha.start();//启动动画

 

2、scale

AnimatorSet animatorSet=new AnimatorSet();//组合动画

//第一个参数view对象,第二个参数动画改变类型,第三个参数开始倍数,第四个参数结束倍数

ObjectAnimator scaleX=ObjectAnimator.ofFloat(text,”scaleX”,1f,0f);

ObjectAnimator scaleY=ObjectAnimator.ofFloat(text,”scaleY”,1f,0f);

 

animatorSet.setDuration(2000);

animatorSet.setInterpolator(new DecelerateInterpolator());

animatorSet.play(scaleX).with(scaleY);//两个动画同时开始

animatorSet.start();

 

3、translate

ObjectAnimator translationUp=ObjectAnimator.ofFloat(viewObject,”Y”,button.getY(),0);

ttranslationUp.setInterpolator(new DecelerateInterpolator());

translationUp.setDuration(1500);

translationUp.start();

 

4、rotate

AnimatorSet set=new AnimatorSet();

ObjectAnimator animtor=Objector.ofFloat(viewObject,”rotationX”,0f,180f);

animator.setDuration(2000);

ObjectAnimator animator2=ObjectAnimator.ofFloat(viewObject,”rotationX”,180f,0f);

animator2.setDuartion(2000);

ObjectAnimator animator3=ObjectAnimator.ofFloat(viewObject,”rotationY”,0f,180f);

animator3.setDuration(2000);

ObjectAnimator animator4=ObjectAnimator.ofFloat(viewObject,”rotationY”,180f,0f);

animator4.setDuration(2000);

 

set.play(animator).before(animator2;//先执行animator动画后执行animator2动画

set.play(animator3).before(animator4);

set.start();//animatoranimator3会同时执行

 

5

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android中的setbackground是一个方法,用于设置View或ViewGroup的背景。可以通过传递一个Drawable对象或一个颜色值来设置背景。例如,可以使用以下代码将一个LinearLayout的背景设置为红色: LinearLayout layout = findViewById(R.id.layout); layout.setBackgroundColor(Color.RED); ### 回答2: AndroidsetBackground()方法允许我们改变一个视图的背景,即使用不同的颜色或背景图像将视图的外观设置为不同的样式。 在Android中,setBackground()方法有多种应用,从简单的更改视图背景颜色,到复杂的使用图像作为背景或将多个颜色应用于同一视图。 以下是不同的方法来使用setBackground()方法: 1. 使用颜色设置背景 可以使用设置颜色来设置视图的背景,如下所示: view.setBackgroundColor(Color.RED); 2. 使用drawable设置背景 可使用drawable来设置视图的背景。drawable是可重复使用的图像资源,可以从Android资源文件夹中调用。以下是使用drawable设置背景的示例代码: view.setBackground(getResources().getDrawable(R.drawable.background_image)); 在这个例子中,androidsetBackground()方法使用了getResources().getDrawable() 方法来设置背景图像。 3. 用XML文件设置背景 我们还可以使用XML文件来设置视图的背景。以下是一个XML文件的例子: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#77c9d4" android:endColor="#3996ab" android:angle="270" /> </shape> 将上述文件保存为bg.xml,在视图中使用以下代码: view.setBackgroundResource(R.drawable.bg); 在这个例子中,setBackgroundResource()方法在视图中设置了背景图像。 我们可以使用不同的方法来设置视图的背景,根据需要选择一个背景设置方法。 但请注意:在开发移动应用程序时,设置合适的背景会对应用程序的用户界面有很大影响。因此,在设置背景之前,请确认其符合您的应用场景与目标受众。 ### 回答3: setBackground()是Android View类的一个方法,可以将一个视图的背景设置为指定的Drawable对象。它可以接受各种类型的Drawable对象,例如BitmapDrawable、ColorDrawable、GradientDrawable等等。该方法必须在UI线程中被调用,因为它会更新UI,如果在非UI线程中使用,就会抛出异常。 示例代码: ``` ImageView imageView = findViewById(R.id.imageView); Drawable drawable = getResources().getDrawable(R.drawable.background); imageView.setBackground(drawable); ``` 在上面的示例中,我们可以看到如何使用setBackground()方法将ImageView的背景设置为R.drawable.background资源的Drawable对象。 值得注意的是,setBackground()方法会替换视图原来的背景,如果您需要在视图上添加多个背景,可以使用LayerDrawable对象创建多个Drawable层。 在使用setBackground()方法时,我们还可以设置一些其他的属性,例如背景透明度、背景是否裁剪到视图范围等等。可以通过View类的其他方法来实现这些属性的设置。 总之,setBackground()是一个非常实用的方法,能够让我们轻松地设置视图的背景,提升应用程序的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值