SuperTextView 强大的TextView

  • 内容
  • 相关

一、功能描述

1.SuperTextView是一个功能强大的View,可以满足日常大部分布局样式,开发者可已自行组合属性配置出属于自己风格的样式!可能描述起来没有概念,还是直接看效果图吧

2.SuperButton拥有shape文件的大部分属性,从此写shape属性变得非常简单

3.CommonTextView只是SuperTextView的逻辑简化,其实功能并不差少哦,有兴趣的可以看看

二、如何使用

2.1 AndroidStudio导入方法,添加Gradle依赖

 先在项目根目录的 build.gradle 的 repositories 添加:

     allprojects {
         repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }

然后在dependencies添加:

        dependencies {
        ...
        compile 'com.github.lygttpod:SuperTextView:VERSION_CODE'
        }

注意:VERSION_CODE为后面的数字,即最新的release版本号

2.2 项目中的使用

2.2.1 布局中如何使用(示例只列出部分属性)

            <com.allen.library.SuperTextView
                android:layout_width="match_parent"
                android:layout_height="80dp"
                stv:sCenterBottomTextColor="@color/colorAccent"
                stv:sCenterBottomTextString="限额说明>>"
                stv:sCenterTopTextString=" "
                stv:sCenterViewGravity="left_center"
                stv:sLeftBottomTextString="招商银行(8888)"
                stv:sLeftIconRes="@drawable/bank_zhao_shang"
                stv:sLeftTopTextString="银行卡支付"
                stv:sLeftViewGravity="left_center"
                stv:sRightCheckBoxRes="@drawable/circular_check_bg"
                stv:sRightViewType="checkbox" />
        注意:
                1、上下的线可以通过   sDividerLineType 设置  有四种显示方式 none,top,bottom,both
                2、通过设置 sUseRipple=true 开启水波效果  

2.2.2 代码中如何使用(示例只列出部分属性)

   /**
     * 可以通过链式设置大部分常用的属性值
     */
   superTextView.setLeftTopString("")
                .setLeftString("")
                .setLeftBottomString("")
                .setCenterTopString("")
                .setCenterString("")
                .setCenterBottomString("")
                .setRightTopString("")
                .setRightString("")
                .setRightBottomString("")
                .setLeftIcon(0)
                .setRightIcon(0)
                .setCbChecked(true)
                .setCbBackground(null)
                .setLeftTvDrawableLeft(null)
                .setLeftTvDrawableRight(null)
                .setCenterTvDrawableLeft(null)
                .setCenterTvDrawableRight(null)
                .setRightTvDrawableLeft(null)
                .setRightTvDrawableRight(null);
                
   superTextView.setShapeCornersRadius(20)
                .setShapeCornersTopLeftRadius(20)
                .setShapeCornersBottomLeftRadius(20)
                .setShapeCornersTopRightRadius(20)
                .setShapeCornersBottomRightRadius(20)
                .setShapeStrokeColor(getResources().getColor(R.color.colorPrimary))
                .setShapeStrokeWidth(1)
                .setShapeSrokeDashWidth(1)
                .setShapeStrokeDashGap(5)
                .setShapeSolidColor(getResources().getColor(R.color.white))
                .setShapeSelectorNormalColor(getResources().getColor(R.color.red_btn))
                .setShapeSelectorPressedColor(getResources().getColor(R.color.gray))
                .useShape();//设置完各个参数之后这句调用才生效

2.2.3 点击事件(可根据需求选择单个或多个点击事件)

  /**
         * 根据实际需求对需要的View设置点击事件
         */
        /**
         * 根据实际需求对需要的View设置点击事件
         */
        superTextView.setOnSuperTextViewClickListener(new SuperTextView.OnSuperTextViewClickListener() {
            @Override
            public void onClickListener(SuperTextView superTextView) {
                string = "整个item的点击事件";
                Toast.makeText(ClickActivity.this, string, Toast.LENGTH_SHORT).show();
            }
        }).setLeftTopTvClickListener(new SuperTextView.OnLeftTopTvClickListener() {
            @Override
            public void onClickListener() {
                string = superTextView.getLeftTopString();
                Toast.makeText(ClickActivity.this, string, Toast.LENGTH_SHORT).show();
            }
        }).setLeftTvClickListener(new SuperTextView.OnLeftTvClickListener() {
            @Override
            public void onClickListener() {
                string = superTextView.getLeftString();
                Toast.makeText(ClickActivity.this, string, Toast.LENGTH_SHORT).show();
            }
        }).setLeftBottomTvClickListener(new SuperTextView.OnLeftBottomTvClickListener() {
            @Override
            public void onClickListener() {
                string = superTextView.getLeftBottomString();
                Toast.makeText(ClickActivity.this, string, Toast.LENGTH_SHORT).show();
            }
        }).setCenterTopTvClickListener(new SuperTextView.OnCenterTopTvClickListener() {
            @Override
            public void onClickListener() {
                string = superTextView.getCenterTopString();
                Toast.makeText(ClickActivity.this, string, Toast.LENGTH_SHORT).show();
            }
        }).setCenterTvClickListener(new SuperTextView.OnCenterTvClickListener() {
            @Override
            public void onClickListener() {
                string = superTextView.getCenterString();
                Toast.makeText(ClickActivity.this, string, Toast.LENGTH_SHORT).show();
            }
        }).setCenterBottomTvClickListener(new SuperTextView.OnCenterBottomTvClickListener() {
            @Override
            public void onClickListener() {
                string = superTextView.getCenterBottomString();
                Toast.makeText(ClickActivity.this, string, Toast.LENGTH_SHORT).show();
            }
        }).setRightTopTvClickListener(new SuperTextView.OnRightTopTvClickListener() {
            @Override
            public void onClickListener() {
                string = superTextView.getRightTopString();
                Toast.makeText(ClickActivity.this, string, Toast.LENGTH_SHORT).show();
            }
        }).setRightTvClickListener(new SuperTextView.OnRightTvClickListener() {
            @Override
            public void onClickListener() {
                string = superTextView.getRightString();
                Toast.makeText(ClickActivity.this, string, Toast.LENGTH_SHORT).show();
            }
        }).setRightBottomTvClickListener(new SuperTextView.OnRightBottomTvClickListener() {
            @Override
            public void onClickListener() {
                string = superTextView.getRightBottomString();
                Toast.makeText(ClickActivity.this, string, Toast.LENGTH_SHORT).show();
            }
        }).setLeftImageViewClickListener(new SuperTextView.OnLeftImageViewClickListener() {
            @Override
            public void onClickListener(ImageView imageView) {
                Toast.makeText(ClickActivity.this, "左边图片", Toast.LENGTH_SHORT).show();
            }
        }).setRightImageViewClickListener(new SuperTextView.OnRightImageViewClickListener() {
            @Override
            public void onClickListener(ImageView imageView) {
                Toast.makeText(ClickActivity.this, "右边图片", Toast.LENGTH_SHORT).show();
            }
        });

        superTextView_cb.setOnSuperTextViewClickListener(new SuperTextView.OnSuperTextViewClickListener() {
            @Override
            public void onClickListener(SuperTextView superTextView) {
                superTextView.setCbChecked(!superTextView.getCbisChecked());
            }
        }).setCheckBoxCheckedChangeListener(new SuperTextView.OnCheckBoxCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                Toast.makeText(ClickActivity.this, "" + isChecked, Toast.LENGTH_SHORT).show();
            }
        });

        superTextView_switch.setOnSuperTextViewClickListener(new SuperTextView.OnSuperTextViewClickListener() {
            @Override
            public void onClickListener(SuperTextView superTextView) {
                superTextView.setSwitchIsChecked(!superTextView.getSwitchIsChecked());
            }
        }).setSwitchCheckedChangeListener(new SuperTextView.OnSwitchCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                Toast.makeText(ClickActivity.this, "" + isChecked, Toast.LENGTH_SHORT).show();
            }
        });

2.2.4 使用第三方库(Picasso或者Glide)加载网络图片

String url1 = "https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=3860616424,1789830124&fm=80&w=179&h=119&img.PNG";
        String url2 = "https://ss0.baidu.com/6ONWsjip0QIZ8tyhnq/it/u=219781665,3032880226&fm=80&w=179&h=119&img.JPEG";
        String url3 = "https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=3860616424,1789830124&fm=80&w=179&h=119&img.PNG";
        
        Picasso.with(this)
                .load(url1)
                .placeholder(R.drawable.head_default)
                .into(superTextView.getLeftIconIV());
        Glide.with(this)
                .load(url2)
                .placeholder(R.drawable.head_default)
                .fitCenter()
                .into(superTextView2.getRightIconIV());

        Glide.with(this)
                .load(url3)
                .placeholder(R.drawable.head_default)
                .into(new SimpleTarget<GlideDrawable>() {
                    @Override
                    public void onResourceReady(GlideDrawable resource, GlideAnimation<? super GlideDrawable> glideAnimation) {
                        superTextView3.setRightTvDrawableRight(resource);
                    }
                });

2.2.5 属性说明(以下属性可以通过xml和代码进行配置)

属性名字段描述默认值
sLeftTextStringstring左边文字字符串 
sLeftTopTextStringstring左上文字字符串 
sLeftBottomTextStringstring左下文字字符串 
sCenterTextStringstring中间文字字符串 
sCenterTopTextStringstring中上文字字符串 
sCenterBottomTextStringstring中下文字字符串 
sRightTextStringstring右边文字字符串 
sRightTopTextStringstring右上文字字符串 
sRightBottomTextStringstring右下文字字符串 
sLeftTextColorcolor左边文字颜色默认0xFF373737
sLeftTopTextColorcolor左上文字颜色默认0xFF373737
sLeftBottomTextColorcolor左下文字颜色默认0xFF373737
sCenterTextColorcolor中间文字颜色默认0xFF373737
sCenterTopTextColorcolor中上文字颜色默认0xFF373737
sCenterBottomTextColorcolor中下文字颜色默认0xFF373737
sRightTextColorcolor左边文字颜色默认0xFF373737
sRightTopTextColorcolor右上文字颜色默认0xFF373737
sRightBottomTextColorcolor右下文字颜色默认0xFF373737
sLeftTextSizedimension左边字体大小默认15sp
sLeftTopTextSizedimension左上字体大小默认15sp
sLeftBottomTextSizedimension左下字体大小默认15sp
sCenterTextSizedimension中间字体大小默认15sp
sCenterTopTextSizedimension中上字体大小默认15sp
sCenterBottomTextSizedimension中下字体大小默认15sp
sRightTextSizedimension右边字体大小默认15sp
sRightTopTextSize dimension 右上字体大小默认15sp
sRightBottomTextSizedimension右下字体大小默认15sp
sLeftLinesinteger左边文字显示行数默认不设置
sLeftTopLinesinteger左上文字显示行数默认不设置
sLeftBottomLinesinteger左下文字显示行数默认不设置
sCenterLinesinteger中间文字显示行数默认不设置
sCenterTopLinesinteger中上文字显示行数默认不设置
sCenterBottomLinesinteger中下文字显示行数默认不设置
sRightLinesinteger右边文字显示行数默认不设置
sRightTopLinesinteger右上文字显示行数默认不设置
sRightBottomLinesinteger右下文字显示行数默认不设置
sLeftMaxEmsinteger左边文字显示个数默认不设置
sLeftTopMaxEmsinteger左上文字显示个数默认不设置
sLeftBottomMaxEmsinteger左下文字显示个数默认不设置
sCenterMaxEmsinteger中间文字显示个数默认不设置
sCenterTopMaxEmsinteger中上文字显示个数默认不设置
sCenterBottomMaxEmsinteger中下文字显示个数默认不设置
sRightMaxEmsinteger右边文字显示个数默认不设置
sRightTopMaxEmsinteger右上文字显示个数默认不设置
sRightBottomMaxEmsinteger右下文字显示个数默认不设置
sLeftViewGravityenum左边文字对齐方式
left_center(左对齐)
center(居中)
right_center(右对齐)
默认center
sCenterViewGravityenum中间文字对齐方式
left_center(左对齐)
center(居中)
right_center(右对齐)
默认center
sRightViewGravityenum右边文字对齐方式
left_center(左对齐)
center(居中)
right_center(右对齐)
默认center
sLeftTvDrawableLeftreference左边TextView左侧的drawable 
sLeftTvDrawableRightreference左边TextView右侧的drawable 
sCenterTvDrawableLeftreference中间TextView左侧的drawable 
sCenterTvDrawableRightreference中间TextView右侧的drawable 
sRightTvDrawableLeftreference右边TextView左侧的drawable 
sRightTvDrawableRightreference右边TextView右侧的drawable 
sLeftTvDrawableWidthdimension左边TextView的drawable的宽度 
sLeftTvDrawableHeightdimension左边TextView的drawable的高度 
sCenterTvDrawableWidthdimension中间TextView的drawable的宽度 
sCenterTvDrawableHeightdimension中间TextView的drawable的高度 
sRightTvDrawableWidthdimension右边TextView的drawable的宽度 
sRightTvDrawableHeightdimension右边TextView的drawable的高度 
sTextViewDrawablePaddingdimensionTextView的drawable对应的Padding默认10dp
sLeftViewWidthdimension左边textView的宽度 为了中间文字左对齐的时候使用 
sTopDividerLineMarginLRdimension上边分割线的MarginLeft和MarginRight默认0dp
sTopDividerLineMarginLeftdimension上边分割线的MarginLeft默认0dp
sTopDividerLineMarginRightdimension上边分割线的MarginRight默认0dp
sBottomDividerLineMarginLRdimension下边分割线的MarginLeft和MarginRigh默认0dp
sBottomDividerLineMarginLeftdimension下边分割线的MarginLeft默认0dp
sBottomDividerLineMarginRightdimension下边分割线的MarginRight默认0dp
sDividerLineColorcolor分割线的颜色默认0xFFE8E8E8
sDividerLineHeightdimension分割线的高度默认0.5dp
sDividerLineTypeenum分割线显示方式
none(不显示分割线)
top(显示上边的分割线)
bottom(显示下边的分割线)
both(显示上下两条分割线)
默认bottom
sLeftViewMarginLeftdimension左边view的MarginLeft默认10dp
sLeftViewMarginRightdimension左边view的MarginRight默认10dp
sCenterViewMarginLeftdimension中间view的MarginLeft默认10dp
sCenterViewMarginRightdimension中间view的MarginRight默认10dp
sRightViewMarginLeftdimension右边view的MarginLeft默认10dp
sRightViewMarginRightdimension右边view的MarginRight默认10dp
sLeftTextIsBoldboolean左边文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sLeftTopTextIsBoldboolean左上文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sLeftBottomTextIsBoldboolean左下文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sCenterTextIsBoldboolean中间文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sCenterTopTextIsBoldboolean中上文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sCenterBottomTextIsBoldboolean中下文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sRightTextIsBoldboolean右边文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sRightTopTextIsBoldboolean右上文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sRightBottomTextIsBoldboolean右下文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sLeftIconResreference左边图片资源 可以用来显示网络图片或者本地 
sRightIconResreference右边图片资源 可以用来显示网络图片或者本地 
sLeftIconWidthdimension左边图片资源的宽度 用于固定图片大小的时候使用 
sLeftIconHeightdimension左边图片资源的高度 用于固定图片大小的时候使用 
sRightIconWidthdimension右边图片资源的宽度 用于固定图片大小的时候使用 
sRightIconHeightdimension右边图片资源的高度 用于固定图片大小的时候使用 
sLeftIconMarginLeftdimension左边图片资源的MarginLeft默认10dp
sRightIconMarginRightdimension右边图片资源的MarginLeft默认10dp
sCenterSpaceHeightdimension上中下三行文字的间距默认5dp
sRightCheckBoxResreference右边CheckBox的资源 
sRightCheckBoxMarginRightdimension右边CheckBox的MarginRight默认10dp
sIsCheckedboolean右边CheckBox是否选中默认 false
sUseRippleboolean是否开启点击出现水波效果默认 true
sBackgroundDrawableResreferenceSuperTextView的背景资源 
sRightViewTypeenum右边显示的特殊View
checkbox
switchBtn
默认都不显示
sRightSwitchMarginRightdimension右边SwitchBtn的MarginRight默认10dp
sSwitchIsCheckedboolean右边SwitchBtn是否选中默认 false
sTextOffstringTextOff默认""
sTextOnstringTextOn默认""
sSwitchMinWidthdimensionSwitchMinWidth系统默认
sSwitchPaddingdimensionSwitchPadding系统默认
sThumbTextPaddingdimensionThumbTextPadding系统默认
sThumbResourcereference右边SwitchBtn自定义选中资源系统默认
sTrackResourcereference右边SwitchBtn自定义未选中资源系统默认
sUseShapeboolean是否使用shape设置圆角及触摸反馈
设为true之后才能使用一下属性
默认false
sShapeSolidColorcolor填充色默认false
sShapeSelectorPressedColorcolor按下时候的颜色默认0xffffffff
sShapeSelectorNormalColorcolor正常显示的颜色默认0xffffffff
sShapeCornersRadiusdimension四个角的圆角半径默认0dp
sShapeCornersTopLeftRadiusdimension左上角的圆角半径默认0dp
sShapeCornersTopRightRadiusdimension右上角的圆角半径默认0dp
sShapeCornersBottomLeftRadiusdimension左下角的圆角半径默认0dp
sShapeCornersBottomRightRadiusdimension右下角的圆角半径默认0dp
sShapeStrokeWidthdimension边框宽度默认0dp
sShapeStrokeDashWidthdimension虚线宽度默认0dp
sShapeStrokeDashGapdimension虚线间隙宽度默认0dp
sShapeStrokeColorcolor边框颜色默认0dp
sLeftTextBackgroundreference左边textView的背景 
sCenterTextBackgroundreference中间textView的背景 
sRightTextBackgroundreference右边textView的背景 
sLeftTextGravityenum左边TextView内文字对齐方式
left(左对齐)
center(居中)
right(右对齐)
默认left
sCenterTextGravityenum中间TextView内文字对齐方式
left(左对齐)
center(居中)
right(右对齐)
默认left
sRightTextGravityenum右边TextView内文字对齐方式
left(左对齐)
center(居中)
right(右对齐)
默认left
sLeftIconShowCircleboolean左边ImageView是否显示为圆形默认false
sRightIconShowCircleboolean右边ImageView是否显示为圆形默认false

 

 

三、转载和GitHub

  1. 转载地址:SuperTextView 强大的textView
  2. GitHub地址:lygttpod/SuperTextView

本文标签:

版权声明:若无特殊注明,本文皆为《admin_H》原创,转载请保留文章出处。

本文链接:SuperTextView 强大的TextView - https://blog.bnist.com/post/2

发表评论

电子邮件地址不会被公开。 必填项已用*标注

未显示?请点击刷新

允许邮件通知
Sitemap