欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android中使用SeekBar拖动条实现改变图片透明度

程序员文章站 2022-08-08 18:34:31
场景 效果 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。 实现 将布局改为LinearLayout,并通过android:orientation="vertical">设置为垂直布 ......

场景

效果

Android中使用SeekBar拖动条实现改变图片透明度

 

 

Android中使用SeekBar拖动条实现改变图片透明度

注:

博客:

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

将布局改为linearlayout,并通过android:orientation="vertical">设置为垂直布局,然后添加一个imageview和seekbar,并分别添加id属性。

其中seekbar,添加最大值为255.因为透明度的最大值就是255

 android:max="255"

并设置当前值就是255

android:progress="255"

完整xml代码

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".seekbaractivity"
    android:orientation="vertical">

    <imageview
        android:layout_width="match_parent"
        android:id="@+id/image"
        android:layout_height="250dp"
        android:src="@drawable/dog"
        />

    <seekbar
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/seekbar"
        android:max="255"
        android:progress="255"
        />

</linearlayout>

然后来到activity

分别通过id获取到imageview和seekbar

然后在seekbar的进度条改变事件中给imageview设置透明度。

package com.badao.relativelayouttest;

import androidx.annotation.requiresapi;
import androidx.appcompat.app.appcompatactivity;

import android.os.build;
import android.os.bundle;
import android.widget.imageview;
import android.widget.seekbar;

public class seekbaractivity extends appcompatactivity {

    private seekbar seekbar;
    private imageview imageview;

    @override
    protected void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_seek_bar);

        imageview = (imageview) findviewbyid(r.id.image);
        seekbar = (seekbar) findviewbyid(r.id.seekbar);
        seekbar.setonseekbarchangelistener(new seekbar.onseekbarchangelistener() {
            @requiresapi(api = build.version_codes.jelly_bean)
            @override
            public void onprogresschanged(seekbar seekbar, int progress, boolean fromuser) {
                imageview.setimagealpha(progress);
            }

            @override
            public void onstarttrackingtouch(seekbar seekbar) {

            }

            @override
            public void onstoptrackingtouch(seekbar seekbar) {

            }
        });
    }
}