删除自定义Seekbar的圆角边缘?

Sre*_*v R 6 android rounded-corners seekbar

我正在尝试自定义搜索栏.我有这个主要工作,但我无法删除此搜索栏的圆角边缘.我知道有很多关于这方面的问题,应用角落0dp会有所帮助,但我不知道在哪里实现这种形状.当我尝试显示形状时,它会变得锋利,但我的背景没有显示,它呈现出黑色的矩形形状.我希望我的背景有锐利的边缘.

在此输入图像描述

seekbarprogrss.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item android:id="@android:id/background">
        <bitmap
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:tileMode="repeat"
            android:antialias="true"
            android:dither="false"
            android:filter="false"
            android:gravity="left"
            android:src="@drawable/cover_back" />
    </item>
    <item
        android:id="@android:id/progress"
        android:drawable="@drawable/seek_progress_bg"/>

</layer-list>
Run Code Online (Sandbox Code Playgroud)

seek_progress_bg.xml

<?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item>
        <clip>
        <bitmap xmlns:android="http://schemas.android.com/apk/res/android"
            android:src="@drawable/cover_front"
            android:tileMode="repeat"
            android:antialias="true"
            android:dither="false"
            android:filter="false"
            android:gravity="left"
        />
        </clip>
    </item>

</layer-list>
Run Code Online (Sandbox Code Playgroud)

Seekbar实施

 <SeekBar
        android:id="@+id/seekBar1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/button2"
        android:progress="0"
        android:secondaryProgress="0"
        android:padding="0dp"
        android:thumbOffset="0dp"
        android:progressDrawable="@drawable/seekbarprogrss"
        android:thumb="@drawable/cover"
Run Code Online (Sandbox Code Playgroud)

Sin*_*Raj 6

SeekBar定制

首先,为mSeekbar.java创建自定义类

public class mSeekbar extends SeekBar{
    public seekBar (Context context) {
        super(context);
        Initialise();
    }
    public seekBar (Context context, AttributeSet attrs) {
        super(context, attrs);
        Initialise();
    }
    public seekBar (Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        Initialise();
    }
    private void Initialise(){
       this.setBackgroundDrawable(getResources().getDrawable(R.drawable.shape));
       this.setProgressDrawable(getResources().getDrawable(R.drawable.seek_bar_base));
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,将此部分添加到您的xml中

<"packageName".seekBar
        android:id="@+id/seekBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:thumb="@drawable/red_front"
        android:padding="0dp"
        android:progress="0"
        android:indeterminate="false"
        android:secondaryProgress="0"
        android:thumbOffset="0dp"/>
Run Code Online (Sandbox Code Playgroud)

使用这些Drawables

seek_bar_base.xml

<layer-list 
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item 
        android:id="@android:id/background">
        <bitmap 
            android:src="@drawable/gray_back"
            android:tileMode="repeat">
        </bitmap>
    </item>
    <item 
        android:id="@android:id/progress">
        <layer-list 
            xmlns:android="http://schemas.android.com/apk/res/android" >
            <item>
                <clip >
                    <bitmap 
                        xmlns:android="http://schemas.android.com/apk/res/android"
                        android:src="@drawable/gray_front"
                        android:tileMode="repeat"/>
                </clip>
            </item>
        </layer-list>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

shape.xml

 <shape 
        xmlns:android="http://schemas.android.com/apk/res/android" >
        <corners android:radius="0dp"/>
    </shape>
Run Code Online (Sandbox Code Playgroud)

使用的图像,

在此输入图像描述 gray_back.jpg

在此输入图像描述 gray_front.jpg

在此输入图像描述 red_front.jpg