这个形状出现在Android Studio上
但是当它在手机上运行时,它看起来像这样
这是我的代码
XML中的
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<SeekBar
android:id="@+id/seekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:max="10000"
android:progress="500"
android:progressDrawable="@drawable/custom_seekbar"
android:thumb="@drawable/thumb_transperent"
/>
</LinearLayout>
其中 @ drawable / custom_seekbar
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Define the background properties like color etc -->
<item android:id="@android:id/background">
<rotate>
<layer-list>
<item android:drawable="@drawable/progress_bar"/>
</layer-list>
</rotate>
</item>
<!-- Define the progress properties like start color, end color etc -->
<item android:id="@android:id/progress">
<clip>
<layer-list>
<item android:drawable="@drawable/progressbar_progress"/>
</layer-list>
</clip>
</item>
</layer-list>
和 @ drawable / progress_bar
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:top="15dp">
<shape android:shape="line">
<stroke android:color="@color/black"
android:width="5dp"/>
<solid android:color="@android:color/transparent" />
</shape>
</item>
<item
android:bottom="25dp"
android:left="0dp"
android:right="100dp"
android:gravity="left"
android:drawable="@drawable/test_small">
</item>
<item
android:left="50dp"
android:right="50dp"
android:bottom="25dp"
android:gravity="center"
android:drawable="@drawable/test_meduim">
</item>
<item
android:left="100dp"
android:bottom="25dp"
android:gravity="right"
android:drawable="@drawable/test_large">
</item>
</layer-list>
和 progressbar_progress
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:top="15dp">
<shape android:shape="line">
<solid android:color="@android:color/transparent" />
<stroke android:color="@color/red" android:width="3dp"/>
</shape>
</item>
<item
android:bottom="25dp"
android:gravity="left"
android:width="19dp"
android:height="19dp"
android:drawable="@drawable/test_small">
</item>
<item
android:gravity="center"
android:right="12dp"
android:bottom="25dp"
android:width="19dp"
android:height="19dp"
android:drawable="@drawable/test_meduim">
</item>
<item
android:bottom="25dp"
android:gravity="right"
android:width="19dp"
android:height="19dp"
android:drawable="@drawable/test_large">
</item>
</layer-list>
可以任何一个人解决这个问题,或者告诉我,我尝试了什么错误的事情很多事情并没有奏效 并且诅咒你
答案 0 :(得分:4)
缩放图像(API 23中添加了width
和height
属性)。为避免这种情况,您可以添加<bitmap/>
元素。
e.g。替换:
<item
android:width="19dp"
android:height="19dp"
android:bottom="25dp"
android:drawable="@drawable/test_small"
android:gravity="left">
</item>
with:
<item
android:bottom="25dp">
<bitmap
android:gravity="left"
android:src="@drawable/test_small" />
</item>
请注意,gravity
元素位于bitmap
元素上。
诀窍解释为here:
缩放所有可绘制项目以适合包含视图的大小, 默认情况下。因此,将图像放在不同的图层列表中 位置可能会增加视图的大小,一些图像缩放为 适当。 要避免缩放列表中的项目,请使用
<bitmap>
元素内部的元素指定drawable和define 重力到不能缩放的东西,例如&#34; center&#34; 。