Android 仿微信/支付宝 字体大小 调整控件

您所在的位置:网站首页 支付宝字体怎么调小点 Android 仿微信/支付宝 字体大小 调整控件

Android 仿微信/支付宝 字体大小 调整控件

2024-07-14 18:23| 来源: 网络整理| 查看: 265

FontResize

FontResize是一个仿微信/支付宝 字体大小 调整控件的库

gradle依赖

implementation 'com.ljx.view:fontresize:1.0.1'

源码下载 该库里面只有一个类FontResizeView,故不用担心库很大。

效果图

属性说明 xml配置 设置回调 FontResizeView fontResizeView = findViewById(R.id.font_resize_view); fontResizeView.setOnFontChangeListener(new OnFontChangeListener() { @Override public void onFontChange(float fontSize) { //字体size改变回调 单位:sp } });

这样配置过后,代码跑起来效果就跟上面的 gif 动图一样

我们把所有属性都加上,看看效果

效果如下 在这里插入图片描述 相信以上属性已经能满足大部分场景,如果不能满足您的场景,请提出您的需求,我会第一时间回应您。

强烈推荐

RxHttp 一条链发送请求,新一代Http请求神器(一)

RxLife 一款轻量级别的RxJava生命周期管理库(一)

Android 史上最优雅的实现文件上传、下载及进度的监听

最后,放出源码

/** * 字体大小调整控件 * User: ljx * Date: 2018/05/11 * Time: 09:53 */ public class FontResizeView extends View { //默认线条颜色 private static final int DEFAULT_LINE_COLOR = Color.parseColor("#222222"); private boolean isCoincide;//是否重合 private int width, height;//FontAdjustView的宽高 private float minSize;//最小字体大小 private float maxSize;//最大字体大小 private float standardSize;//标准字体大小 private String leftText; //左边文本 private String middleText; //中间文本 private String rightText; //右边文本 private int leftTextColor; //左边文本颜色 private int middleTextColor; //中间文本颜色 private int rightTextColor; //右边文本颜色 private int totalGrade; //总的等级 private int standardGrade; //标准等级 private int lineColor; //线条颜色 private int horizontalLineLength; //横向线段长度 private int verticalLineLength; //纵向线段长度 private int lineStrokeWidth; //线条宽度 private int lineAverageWidth; //每段水平线条的长度 private int sliderGrade; //滑块等级 private int sliderColor; //滑块颜色 private int sliderShadowColor; //滑块阴影颜色 private Point sliderPoint; //滑块位置 private Paint mPaint;//画笔 private Line mHorizontalLine; //一条横线 private Line[] mVerticalLines; //n条竖线 private GestureDetector mGestureDetector; //手势检测 private OnFontChangeListener onFontChangeListener; //字体size改变监听器 public FontResizeView(Context context) { this(context, null); } public FontResizeView(Context context, AttributeSet attrs) { this(context, attrs, 0); } public FontResizeView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); int padding = dp2px(35); setPadding(padding, padding, padding, padding); TypedArray ta = context.obtainStyledAttributes(attrs, R.styleable.FontResizeView); minSize = ta.getDimension(R.styleable.FontResizeView_minSize, dp2px(15)); maxSize = ta.getDimension(R.styleable.FontResizeView_maxSize, dp2px(25)); totalGrade = ta.getInt(R.styleable.FontResizeView_totalGrade, 6); standardGrade = ta.getInt(R.styleable.FontResizeView_standardGrade, 2); if (standardGrade 6) { standardGrade = 1; } sliderGrade = standardGrade; leftText = ta.getString(R.styleable.FontResizeView_leftText); if (TextUtils.isEmpty(leftText)) leftText = "A"; middleText = ta.getString(R.styleable.FontResizeView_middleText); if (TextUtils.isEmpty(middleText)) middleText = context.getString(R.string.font_resize_standard); rightText = ta.getString(R.styleable.FontResizeView_rightText); if (TextUtils.isEmpty(rightText)) rightText = "A"; leftTextColor = ta.getColor(R.styleable.FontResizeView_leftTextColor, Color.BLACK); middleTextColor = ta.getColor(R.styleable.FontResizeView_middleTextColor, Color.BLACK); rightTextColor = ta.getColor(R.styleable.FontResizeView_rightTextColor, Color.BLACK); lineColor = ta.getColor(R.styleable.FontResizeView_lineColor, DEFAULT_LINE_COLOR); lineStrokeWidth = ta.getDimensionPixelOffset(R.styleable.FontResizeView_lineStrokeWidth, dp2px(0.5f)); horizontalLineLength = ta.getDimensionPixelOffset(R.styleable.FontResizeView_horizontalLineLength, -1); verticalLineLength = ta.getDimensionPixelOffset(R.styleable.FontResizeView_verticalLineLength, -1); sliderColor = ta.getColor(R.styleable.FontResizeView_sliderColor, Color.WHITE); sliderShadowColor = ta.getColor(R.styleable.FontResizeView_sliderShadowColor, Color.GRAY); float sliderRadius = ta.getDimension(R.styleable.FontResizeView_sliderRadius, dp2px(25)); ta.recycle(); mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mPaint.setStyle(Paint.Style.FILL); width = getResources().getDisplayMetrics().widthPixels; height = dp2px(140); standardSize = (maxSize - minSize) / (totalGrade - 1) * (standardGrade - 1) + minSize; mHorizontalLine = new Line(); mVerticalLines = new Line[totalGrade]; for (int i = 0; i horizontalLine.stopX) { x = horizontalLine.stopX; } else if (x


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3