android – 像ScreenSaver一样改变渐变的颜色?
作者:互联网
你好朋友,我想改变像下面的图像渐变的颜色.我试了很多天但没有运气.你能帮助我吗?提前致谢!
我可以使用渐变LinearLayout绘制颜色,但我想在运行时更改此颜色.
解决方法:
这可以通过逐帧动画来实现.在你的活动中写下面的代码:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.your_activity_layout);
ImageView animation animation = (ImageView)findViewById(R.id.imageAnimation);
animation.setBackgroundResource(R.drawable.anim_fbyf);
}
@Override
public void onWindowFocusChanged (boolean hasFocus)
{
super.onWindowFocusChanged(hasFocus);
AnimationDrawable frameAnimation =
(AnimationDrawable) animation.getBackground();
if(hasFocus)
frameAnimation.start();
else
frameAnimation.stop();
}
在名为anim_fbyf.xml的drawable文件夹中创建1 xml
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/frame0" android:duration="350" />
<item android:drawable="@drawable/frame1" android:duration="350" />
<item android:drawable="@drawable/frame2" android:duration="350" />
<item android:drawable="@drawable/frame3" android:duration="350" />
<item android:drawable="@drawable/frame4" android:duration="350" />
<item android:drawable="@drawable/frame5" android:duration="350" />
<item android:drawable="@drawable/frame6" android:duration="350" />
<item android:drawable="@drawable/frame7" android:duration="350" />
<item android:drawable="@drawable/frame8" android:duration="350" />
<item android:drawable="@drawable/frame9" android:duration="350" />
<item android:drawable="@drawable/frame10" android:duration="350" />
<item android:drawable="@drawable/frame11" android:duration="350" />
<item android:drawable="@drawable/frame12" android:duration="350" />
<item android:drawable="@drawable/frame13" android:duration="350" />
</animation-list>
您可以根据需要设置持续时间并添加任何帧数.
我添加了13帧(或gif图像)并将持续时间设置为350毫秒.
输出:
下面是具有13帧的图像
标签:linear-gradients,android,android-layout,colors 来源: https://codeday.me/bug/20190831/1774884.html