Android 仿微信/支付宝 字体大小 调整控件 |
您所在的位置:网站首页 › 支付宝字体怎么调小点 › Android 仿微信/支付宝 字体大小 调整控件 |
FontResize
FontResize是一个仿微信/支付宝 字体大小 调整控件的库 gradle依赖 implementation 'com.ljx.view:fontresize:1.0.1'源码下载 该库里面只有一个类FontResizeView,故不用担心库很大。 效果图 这样配置过后,代码跑起来效果就跟上面的 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 |