吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1487|回复: 2
收起左侧

[其他转载] 给GradientDrawable搞个setPadding

[复制链接]
djwdj 发表于 2021-5-6 19:54
本帖最后由 djwdj 于 2021-5-6 19:55 编辑

360截图20210506194017048.jpg

安卓10才支持setPadding

360截图20210506194330913.jpg
安卓诞生前就支持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;
    }

免费评分

参与人数 1吾爱币 +3 热心值 +1 收起 理由
苏紫方璇 + 3 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| djwdj 发表于 2021-5-6 20:32
没有主题动态切换,也不想重写
那就上点幼儿园的代码

drawable/a_btn_radius.xml
[Java] 纯文本查看 复制代码
<inset xmlns:android="http://schemas.android.com/apk/res/android"
       android:insetLeft="@dimen/bt_ih"
       android:insetTop="@dimen/bt_iv"
       android:insetRight="@dimen/bt_ih"
       android:insetBottom="@dimen/bt_iv">
    <shape>
        <corners android:radius="@dimen/bt_r" />
        <solid android:color="@color/bt_c" />
        <stroke android:color="@color/bt_sc"
                android:width="@dimen/bt_sw"/>
        <padding android:left="@dimen/bt_ph"
                 android:top="@dimen/bt_pv"
                 android:right="@dimen/bt_ph"
                 android:bottom="@dimen/bt_pv" />
    </shape>
</inset>


values/a.xml
[Java] 纯文本查看 复制代码
<resources>
    <dimen name="bt_ih" >4dp</dimen>
    <dimen name="bt_iv" >6dp</dimen>
    <dimen name="bt_pv" >4dp</dimen>
    <dimen name="bt_ph" >8dp</dimen>
    <dimen name="bt_r" >20dp</dimen>
    <dimen name="bt_sw" >1dp</dimen>
    <color name="bt_sc" >#ff5555</color>
    <color name="bt_c">#ffffff</color>
</resources>
fanvalen 发表于 2021-5-6 20:03
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 17:48

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表