KotLin实现透明度的变化啊

KotLin 外卖App

实现透明度的变化

布局

 <LinearLayout
            android:id="@+id/ll_title_container"
            android:layout_width="match_parent"
            android:background="#553190E8"
            android:orientation="horizontal"
            android:layout_alignParentTop="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_height="wrap_content">
        <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="50dp"
                android:layout_marginTop="30dp"
                android:orientation="horizontal"
        >
            <LinearLayout android:layout_width="0dp"
                          android:layout_height="match_parent"
                          android:layout_weight="2"
                          android:orientation="horizontal"
            >
                <TextView android:layout_width="wrap_content"
                          android:layout_height="wrap_content"
                          android:layout_gravity="center_vertical"
                          android:layout_marginLeft="5dip"
                          android:layout_weight="1"
                          android:singleLine="true"
                          android:text="昌平区北七家宏福创业园修正大厦"
                />
                <ImageView android:layout_width="wrap_content"
                           android:layout_height="wrap_content"
                           android:src="@drawable/xia"
                           android:layout_marginRight="15dip"
                           android:layout_gravity="center_vertical"
                />
            </LinearLayout>

//找到控件
//fragment

 val datas : ArrayList<String> = ArrayList<String>()
    var sum : Int = 0
    var distance : Int = 0
    var alpha = 55
    lateinit var homeRvAdapter:HomeRvAdapter
    lateinit var rvHome : RecyclerView
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        val view = View.inflate(activity, R.layout.fragment_home, null)

        rvHome = view.findViewById<RecyclerView>(R.id.rv_home)
        rvHome.layoutManager = LinearLayoutManager(activity)
        homeRvAdapter = HomeRvAdapter(activity)
        rvHome.adapter = homeRvAdapter

        distance = 120.dp2px()

        return view
    }

//转化值

 fun Int.dp2px():Int{
        return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,toFloat(),resources.displayMetrics).toInt()
    }

//透明度的变化

 rvHome.setOnScrollListener(object : RecyclerView.OnScrollListener(){
            override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) {
                super.onScrollStateChanged(recyclerView, newState)
            }

            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
                super.onScrolled(recyclerView, dx, dy)

                sum += dy
                if(sum > distance){
                    alpha = 255
                }else {
                    alpha = sum * 200/distance
                    alpha += 55
                }
                ll_title_container.setBackgroundColor(Color.argb(alpha,0x31,0x90,0xe8))

            }
        })
    }

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值