本帖最后由 djwdj 于 2021-5-6 19:55 编辑
安卓10才支持setPadding
安卓诞生前就支持getPadding
这就容易解决了
重写一下就好了
上点小学生都懂的代码
[Java] 纯文本查看 复制代码 package l;
import android.graphics.Rect;
import android.graphics.drawable.GradientDrawable;
/**
* Create User: DJW
* Create Date: 2021/5/6
* Create Time: 19:00
*/
public class gd extends GradientDrawable {
Rect mPadding;
@Override
public boolean getPadding(Rect padding) {
if (mPadding != null) {
padding.set(mPadding);
return true;
} else {
return super.getPadding(padding);
}
}
public void setPadding(int p){
setPadding(p,p,p,p);
}
public void setPadding(int left, int top, int right, int bottom) {//api=29,10.0
if (mPadding == null) {
mPadding = new Rect();
}
mPadding.set(left, top, right, bottom);
invalidateSelf();
}
}
我的用法:
[Java] 纯文本查看 复制代码 public static Drawable gd2(){
gd gd=new gd();
gd.setColor(0xffaaaaaa);//背景
gd.setStroke(2,0xffecec00);//边框
gd.setCornerRadius(50);//圆角
gd.setPadding(12);//内间距
InsetDrawable id = new InsetDrawable(gd, 10);//外间距
return id;
}
|