在适配器中按项目更改渐变背景颜色

时间:2018-07-16 14:05:28

标签: android mobile gradient

我想创造这样的东西。我想在android kotlin应用程序中使用它。
https://dribbble.com/shots/3830441-To-Do-App 您是否知道如何像在该链接中看到的那样轻松地更改背景颜色?非常感谢。

2 个答案:

答案 0 :(得分:0)

创建这样的可绘制对象:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
    android:startColor="#376F9D"
    android:centerColor="#4E9EB4"
    android:endColor="#4F9FB5"
    android:angle="0"
    android:type="linear"/>
</shape>

然后将其用作活动布局的根元素的背景:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/gradient">

<RelativeLayout
    android:paddingTop="56dp"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <ImageView
        android:layout_centerInParent="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/logo"/>
</RelativeLayout>

答案 1 :(得分:0)

您可能正在寻找这样的东西:

     
  • ViewPager 用于用户界面
  •  
  • 为ViewPager设置 onPageChangeListener(),以检测何时更改了ViewPager的屏幕
  •  
  • 在更改过程中使用 ViewPager.setBackgroundColor() api更改ViewPager背景
  •  
  • 使用 ArgbEvaluator.evaluate(positionOffSet,yourCurrentColorValue,yourNextColorValue)获取以上 ViewPager.setBackgroundColor()的平滑动画颜色值

有关完整解决方案的更多参考,您可以在Google上进行搜索,也可以寻找类似的内容:http://kubaspatny.github.io/2014/09/18/viewpager-background-transition/

Kotlin可能有类似的方法来解决此问题。