2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > android自动切换图片 android-自动切换背景图片

android自动切换图片 android-自动切换背景图片

时间:2023-10-25 10:18:50

相关推荐

android自动切换图片 android-自动切换背景图片

因为好用,所以值得收藏。

》》》》》》》》》

一、创建切换背景布局类

public class LaunchAppAnimatedBgRelativeLayout extends

RelativeLayout {

private Random random;

private final float MAX_ALPHA = 1F;

private final float MIN_ALPHA = 0F;

private final int ANIMATION_DURATION =

800;

private final int DISPLAY_DURATION = (2000 +

ANIMATION_DURATION);

private Handler handler;

private ImageView animationImageView;

private ImageView staticImageView;

private List imageIdList;

private int currentImageIndex = -1;

private boolean isContinueLoop = true;

public

LaunchAppAnimatedBgRelativeLayout(Context context,

AttributeSet

attrs, int defStyle) {

super(context, attrs,

defStyle);

init();

}

public

LaunchAppAnimatedBgRelativeLayout(Context context, AttributeSet

attrs) {

super(context, attrs);

init();

}

public

LaunchAppAnimatedBgRelativeLayout(Context context) {

super(context);

init();

}

private void init() {

random = new Random();

handler = new Handler();

staticImageView =

makeNewImageView();

animationImageView =

makeNewImageView();

this.setBackgroundColor(Color.BLACK);

}

private ImageView makeNewImageView() {

ImageView imageView = new

ImageView(getContext());

imageView.setScaleType(ScaleType.CENTER_CROP);

this.addView(imageView, new

LayoutParams(LayoutParams.WRAP_CONTENT,

LayoutParams.WRAP_CONTENT));

return imageView;

}

private int calNextImageIdIndex() {

currentImageIndex++;

if (currentImageIndex >

imageIdList.size() - 1) {

currentImageIndex

= 0;

}

return currentImageIndex;

}

private void

setAlphaAnimatedImageViewFadeOut() {

calNextImageIdIndex();

float fromAlpha =

MAX_ALPHA;

float toAlpha =

MIN_ALPHA;

AlphaAnimation alphaAnimation =

new AlphaAnimation(fromAlpha, toAlpha);

alphaAnimation.setDuration(ANIMATION_DURATION);

alphaAnimation.setAnimationListener(new

AnimationListener() {

@Override

public void

onAnimationStart(Animation animation) {

staticImageView.setImageResource(imageIdList

.get(currentImageIndex));

}

@Override

public void

onAnimationRepeat(Animation animation) {

}

@Override

public void

onAnimationEnd(Animation animation) {

animationImageView.setImageResource(imageIdList

.get(currentImageIndex));

if

(isContinueLoop) {

handler.postDelayed(new

Runnable() {

@Override

public

void run() {

setAlphaAnimatedImageViewFadeOut();

}

},

DISPLAY_DURATION);

}

}

});

animationImageView.startAnimation(alphaAnimation);

}

public boolean isContinueLoop() {

return isContinueLoop;

}

public void setContinueLoop(boolean

isContinueLoop) {

if ((!(this.isContinueLoop))

&& isContinueLoop) {

this.isContinueLoop

= isContinueLoop;

setAlphaAnimatedImageViewFadeOut();

} else {

this.isContinueLoop

= isContinueLoop;

}

}

public void setImageIdList(List imageIdList)

{

this.imageIdList =

imageIdList;

currentImageIndex = 0;

isContinueLoop = true;

animationImageView.setImageResource(imageIdList.get(currentImageIndex));

handler.postDelayed(new

Runnable() {

@Override

public void

run() {

setAlphaAnimatedImageViewFadeOut();

}

}, DISPLAY_DURATION);

}

}

二、在mainActivity内加载该布局,并向该布局传递需要进行切换的图片list即可,可根据项目需求修改布局参数,以实现自己需要的功能。

@Override

protected void onCreate(Bundle

savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

final LinearLayout layout =

(LinearLayout) findViewById(R.id.mlinear);

launch = new

LaunchAppAnimatedBgRelativeLayout(this);

layout.addView(launch);

List imageIdList = new

ArrayList();

imageIdList.add(R.drawable.car2);

imageIdList.add(R.drawable.car3);

imageIdList.add(R.drawable.car4);

imageIdList.add(R.drawable.car7);

imageIdList.add(R.drawable.car8);

imageIdList.add(R.drawable.car9);

launch.setImageIdList(imageIdList);

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。