一、实现背景从小到大逐渐占满全屏的效果,可以使用ScaleAnimation,这个动画类型允许控制视图的大小变化。
1、首先,定义一个ScaleAnimation
对象,并设置其属性。
2、然后,将这个动画应用到你想要改变大小的背景视图上。
Java代码示例:
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import android.os.Bundle;
import android.view.animation.ScaleAnimation;
import android.widget.ImageView;
public class FinacialLife extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_finacial_life);
//定义背景视图
ConstraintLayout backgroundView = findViewById(R.id.body);
// 创建一个从小到大的缩放动画
ScaleAnimation scaleAnimation = new ScaleAnimation(
0.1f, 1.0f, // 从0.1倍大小变化到1倍原大小
0.1f, 1.0f, // 从0.1倍大小变化到1倍原大小
ScaleAnimation.RELATIVE_TO_SELF, 0.5f, // 相对于自己进行缩放,锚点为视图中心
ScaleAnimation.RELATIVE_TO_SELF, 0.5f // 相对于自己进行缩放,锚点为视图中心
);
scaleAnimation.setDuration(3000); // 设置动画持续时间
scaleAnimation.setFillAfter(true); // 设置动画结束后保持最终状态
backgroundView.startAnimation(scaleAnimation);
}
}
Android背景动画
二、实现图片左右摇晃的效果。可以使用Android中的TranslateAnimation
。这种动画可以沿着X轴或Y轴移动视图,从而创建出摇晃的效果。
-
首先,定义一个
TranslateAnimation
对象,设置其属性以实现左右摇晃的效果。 -
将这个动画应用到你想要摇晃的图片视图上。
import androidx.appcompat.app.AppCompatActivity;
import androidx.constraintlayout.widget.ConstraintLayout;
import android.os.Bundle;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;
public class TakeSubway extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_take_subway);
ImageView imageViewRightTop = findViewById(R.id.imageView75);
// 创建一个左右摇晃的动画
TranslateAnimation shakeAnimation = new TranslateAnimation(
0, // 动画开始时在X轴的位置(这里是原位置)
5, // 动画结束时在X轴的位置(向右移动5像素)
0, // 动画开始时在Y轴的位置
0 // 动画结束时在Y轴的位置
);
shakeAnimation.setDuration(500); // 设置动画持续时间
shakeAnimation.setRepeatCount(-1); // 设置重复次数,-1为无限重复
shakeAnimation.setRepeatMode(Animation.REVERSE); // 设置重复模式,使其来回摇晃
// 应用动画
imageViewRightTop.startAnimation(shakeAnimation);
}
}
图片动画
三、滑动条来控制图片大小。通过SeekBar组件来实现。
-
在布局文件中添加SeekBar:在布局文件中添加一个
SeekBar
。 -
为SeekBar添加监听器:在Activity或Fragment中,为这个
SeekBar
添加一个OnSeekBarChangeListener
监听器。 -
更新图片的大小:在监听器的
onProgressChanged
方法中,根据SeekBar的进度值来更新图片的大小。
在Activity中添加监听器
public class TiaozhenDaxiao extends AppCompatActivity {
private ImageView imageView71;
private SeekBar seekBar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tiaozhen_daxiao);
imageView71 = findViewById(R.id.imageView71);
seekBar = findViewById(R.id.seekBar);
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
// 根据progress的值调整图片的大小
updateImageViewSize(progress);
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
private void updateImageViewSize(int progress) {
// 将progress映射到一个尺寸值上
int imageSize = getImageViewSizeByProgress(progress);
// 更新ImageView的尺寸
ViewGroup.LayoutParams layoutParams = imageView71.getLayoutParams();
layoutParams.width = imageSize;
layoutParams.height = imageSize;
imageView71.setLayoutParams(layoutParams);
}
private int getImageViewSizeByProgress(int progress) {
// 假设我们根据SeekBar的进度来决定图片的大小,这里只是一个示例
// 你需要根据实际情况来计算尺寸
return Math.max(100, progress * 2); // 基础大小100,每增加1进度增加2像素
}
}
滑动条