Có cách nào tôi có thể xóa hình nền thanh trong tiện ích con Android SeekBar không?Android Xóa nền SeekBar
Tôi chỉ muốn hiển thị thanh trượt mà không có thanh tiến trình phía sau thanh trượt.
Bất kỳ trợ giúp nào?
Có cách nào tôi có thể xóa hình nền thanh trong tiện ích con Android SeekBar không?Android Xóa nền SeekBar
Tôi chỉ muốn hiển thị thanh trượt mà không có thanh tiến trình phía sau thanh trượt.
Bất kỳ trợ giúp nào?
Tôi đã giải quyết được vấn đề của chính mình.
Để loại bỏ nền, bạn phải tạo một drawable trống và đặt nó vào progressDrawable:
satBar.setProgressDrawable(invisibleBackground);
Cài đặt nó để null dường như không làm việc.
Bạn đã thử setBackgroundDrawable(null)
chưa?
Một cách để thực hiện việc này là thay đổi màu của thanh tiến trình thành màu nền. Bạn phải sử dụng bố cục tùy chỉnh.
<SeekBar
android:layout_width="350px"
android:layout_height="25px"
android:layout_margin="30px"
android:layout_x="60px"
android:layout_y="185px"
android:id="@+id/seekbar"
android:progressDrawable="@drawable/myprogress"
/>
Một bố trí tùy chỉnh được đưa ra dưới đây - chơi xung quanh với các màu sắc:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<corners android:radius="5dip" />
<gradient
android:startColor="#ff9d9e9d"
android:centerColor="#ff5a5d5a"
android:centerY="0.75"
android:endColor="#ff747674"
android:angle="270"
/>
</shape>
</item>
<item
android:id="@android:id/progress"
>
<clip>
<shape>
<corners
android:radius="5dip" />
<gradient
android:startColor="#9191FE"
android:centerColor="#9191FE"
android:centerY="0.75"
android:endColor="#9191FE"
android:angle="270" />
</shape>
</clip>
</item>
Có một cách đơn giản hơn mà không yêu cầu tạo ra một drawable mới. Đơn giản chỉ cần đặt sau đây trong định nghĩa xml của bạn
android:progressDrawable="@android:color/transparent"
Hoặc nếu bạn muốn làm điều đó trong mã của bạn:
mySlider.setProgressDrawable(new ColorDrawable(android.R.color.transparent));
Giải pháp tốt hơn giải pháp của @GuyNoir ở trên đòi hỏi một "không thể vẽ được" giả tạo được tạo ra – Guy
Chỉ cần lưu ý: bạn không thể sử dụng # 0000, nhưng sử dụng @android: công việc màu/trong suốt. – sidon
Nhưng điều này loại bỏ các đường ngang cũng trên chủ đề ánh sáng holo. Tôi muốn giữ điều đó. – lalitm
tạo ra một tập tin xml seekbar_progress.xml
và đặt nó trong drawable
sọc folder.Here là một hình ảnh, chụp ảnh và đặt nó trong thư mục drawable
.
seekbar_progress.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/stripes"
android:tileMode="repeat"
android:antialias="true"
android:dither="true"
android:filter="false"
android:gravity="left"
/>
</clip>
</item>
</layer-list>
Bây giờ trong main xml
tập tin của bạn cũng được có mã seekbar, có một hình ảnh và lưu trữ trong drawable
folder.here seekbar là một hình ảnh.
<SeekBar
android:id="@+id/seekbar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/seekbar"
android:progressDrawable="@drawable/seekbar_progress"/>
Tôi có. Các nền drawable thực sự là đằng sau thanh chính nó. Tôi cần một cách để xóa các thanh (và cũng có thể thay đổi hình ảnh của thanh trượt) – GuyNoir
và làm thế nào tôi có thể khôi phục lại ban đầu sau đó? tks – Paul
@Paul: Trước tiên hãy thử gọi 'getBackground()', lưu kết quả ở đâu đó và sau đó khôi phục nó qua 'setBackgroundDrawable()'. Mặc dù không có tên song song, 'getBackground()' trả về một 'Drawable'. – CommonsWare