如何在运行时更改android:bottom?
在.xml中设置android:bottom=“5dp”时,它可以工作。但是现在,需要在运行时更改bottom值。通过调试,xml文件被解析为GradientDrawable。那么,如何更改GradientDrawable,设置底部值wokrs?谢谢 您可以使用。它接受每侧的图层索引和4个偏移值如何在运行时更改android:bottom?,android,android-layout,drawable,gradientdrawable,Android,Android Layout,Drawable,Gradientdrawable,在.xml中设置android:bottom=“5dp”时,它可以工作。但是现在,需要在运行时更改bottom值。通过调试,xml文件被解析为GradientDrawable。那么,如何更改GradientDrawable,设置底部值wokrs?谢谢 您可以使用。它接受每侧的图层索引和4个偏移值 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="h
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:gravity="center|bottom"
android:bottom="5dp">
<shape android:shape="rectangle">
<solid android:color="#FF0000" />
<corners android:radius="2dp" />
<size
android:width="10dp"
android:height="2dp" />
</shape>
</item>
</layer-list>
下面是修改底部偏移的示例
setLayerInset(layer, leftOffset, topOffset, rightOffset, bottomOffset)
第一个参数是要修改的层的索引。在本例中,只有一个层,所以它是0。其余4个值以
像素为单位
,因此在更改偏移量时,请确保首先将DP
转换为pixel
。谢谢,它适合我!尝试更改GradientDrawable
对象会使我在开始时出错。
val layerDrawable = ContextCompat.getDrawable(this, R.drawable.test) as LayerDrawable
layerDrawable.setLayerInset(0,0,0,0,200)
imageView.background=layerDrawable