gpt4 book ai didi

java - Android - 在 ImageView 中交叉淡化多个图像

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:15:33 33 4
gpt4 key购买 nike

我正在开发一个需要在多个图像之间交叉淡入淡出的应用程序,

我有:一个 ImageView 和 50 个可绘制对象 (.png),我将从云端下载它们

我想要的是:50 个可绘制对象应该在几秒的间隔之间按顺序交叉淡入淡出(淡入和淡出)

我尝试过的方法:根据 stackoverflow 上的一些答案,我尝试了 TransitionDrawable 技术,但我只能在 2 个图像之间交叉淡入淡出,而不能更多,并且可以触摸。

我提到的视频:https://www.youtube.com/watch?v=atH3o2uh_94

最佳答案

执行此操作的自定义 View :

public class FadeView extends FrameLayout {
private long mFadeDelay = 1000;
private ImageView mFirst;
private ImageView mSecond;
private boolean mFirstShowing;

public FadeView(Context context) {
super(context);
init(context);
}

public FadeView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}

public FadeView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
}

private void init(Context c){
mFirst = new ImageView(c);
mSecond = new ImageView(c);

mFirst.setAlpha(1.0f);
mSecond.setAlpha(0.0f);

mFirstShowing = true;

addView(mFirst);
addView(mSecond);
}

public void setFadeDelay(long fadeDelay) {
mFadeDelay = fadeDelay;
}

public void ShowImage(Drawable d){
if(mFirstShowing){
mSecond.setImageDrawable(d);
mSecond.animate().alpha(1.0f).setDuration(mFadeDelay);
mFirst.animate().alpha(0.0f).setDuration(mFadeDelay);
}else {
mFirst.setImageDrawable(d);
mSecond.animate().alpha(0.0f).setDuration(mFadeDelay);
mFirst.animate().alpha(1.0f).setDuration(mFadeDelay);
}

mFirstShowing = !mFirstShowing;
}
}

用法:

public class test extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

final FadeView fw = new FadeView(this);
setContentView(fw);

fw.setOnClickListener(new View.OnClickListener() {
Drawable d1 = getResources().getDrawable(android.R.drawable.ic_dialog_alert);
Drawable d2 = getResources().getDrawable(android.R.drawable.ic_dialog_info);
boolean flag;

@Override
public void onClick(View view) {
if(flag){
fw.ShowImage(d1);
}else {
fw.ShowImage(d2);
}
flag = !flag;
}
});
}


}

关于java - Android - 在 ImageView 中交叉淡化多个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18249395/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com