Home

Awesome

SuperTextView

API Android Arsenal

重磅推出SuperTextView2.x版本,属性参数相比1.x有些变化,1.x的用户升级2.x的时候请注意

1、功能描述

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

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

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

如果觉得对你有用的话,点一下右上的星星赞一下吧!

2、 效果 Demo下载地址

<p align="center"> <img src="https://github.com/lygttpod/SuperTextView/blob/master/screen/supertextview_demo.png"> </p>

3、如何使用

3.1、Android Studio导入方法,添加Gradle依赖

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

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

然后在dependencies添加:

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

温馨提示:项目中部分代码使用kotlin写的,所以你的项目需要支持kotlin

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

3.2、项目中如何使用

3.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 开启水波效果

3.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();//设置完各个参数之后这句调用才生效

3.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();
            }
        });

3.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);
                    }
                });

3.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
sRightTopTextSizedimension右上字体大小默认15sp
sRightBottomTextSizedimension右下字体大小默认15sp
sLeftLinesinteger左边文字显示行数默认不设置
sLeftTopLinesinteger左上文字显示行数默认不设置
sLeftBottomLinesinteger左下文字显示行数默认不设置
sCenterLinesinteger中间文字显示行数默认不设置
sCenterTopLinesinteger中上文字显示行数默认不设置
sCenterBottomLinesinteger中下文字显示行数默认不设置
sRightLinesinteger右边文字显示行数默认不设置
sRightTopLinesinteger右上文字显示行数默认不设置
sRightBottomLinesinteger右下文字显示行数默认不设置
sLeftMaxEmsinteger左边文字显示个数默认不设置
sLeftTopMaxEmsinteger左上文字显示个数默认不设置
sLeftBottomMaxEmsinteger左下文字显示个数默认不设置
sCenterMaxEmsinteger中间文字显示个数默认不设置
sCenterTopMaxEmsinteger中上文字显示个数默认不设置
sCenterBottomMaxEmsinteger中下文字显示个数默认不设置
sRightMaxEmsinteger右边文字显示个数默认不设置
sRightTopMaxEmsinteger右上文字显示个数默认不设置
sRightBottomMaxEmsinteger右下文字显示个数默认不设置
sLeftViewGravityenum左边文字对齐方式<br>left_center(左对齐)<br>center(居中)<br>right_center(右对齐)默认center
sCenterViewGravityenum中间文字对齐方式<br>left_center(左对齐)<br>center(居中)<br>right_center(右对齐)默认center
sRightViewGravityenum右边文字对齐方式<br>left_center(左对齐)<br>center(居中)<br>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分割线显示方式 <br>none(不显示分割线)<br>top(显示上边的分割线)<br>bottom(显示下边的分割线)<br>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
sLeftTextIsBold(移除)boolean左边文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sLeftTopTextIsBold(移除)boolean左上文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sLeftBottomTextIsBold(移除)boolean左下文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sCenterTextIsBold(移除)boolean中间文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sCenterTopTextIsBold(移除)boolean中上文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sCenterBottomTextIsBold(移除)boolean中下文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sRightTextIsBold(移除)boolean右边文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sRightTopTextIsBold(移除)boolean右上文字是否加粗默认false(暂时去除此属性改为代码动态配置)
sRightBottomTextIsBold(移除)boolean右下文字是否加粗默认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<br>checkbox<br>switchBtn默认都不显示
sRightSwitchMarginRightdimension右边SwitchBtn的MarginRight默认10dp
sSwitchIsCheckedboolean右边SwitchBtn是否选中默认 false
sTextOffstringTextOff默认""
sTextOnstringTextOn默认""
sSwitchMinWidthdimensionSwitchMinWidth系统默认
sSwitchPaddingdimensionSwitchPadding系统默认
sThumbTextPaddingdimensionThumbTextPadding系统默认
sThumbResourcereference右边SwitchBtn自定义选中资源系统默认
sTrackResourcereference右边SwitchBtn自定义未选中资源系统默认
sUseShapeboolean是否使用shape设置圆角及触摸反馈<br>设为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内文字对齐方式<br>left(左对齐)<br>center(居中)<br>right(右对齐)默认left
sCenterTextGravityenum中间TextView内文字对齐方式<br>left(左对齐)<br>center(居中)<br>right(右对齐)默认left
sRightTextGravityenum右边TextView内文字对齐方式<br>left(左对齐)<br>center(居中)<br>right(右对齐)默认left
sLeftIconShowCircleboolean左边ImageView是否显示为圆形默认false
sRightIconShowCircleboolean右边ImageView是否显示为圆形默认false

黑格尔曾说过:存在即合理。SuperTextView的出现应该就是某种需求下的产物。

4、更新日志

意见反馈

<a target="_blank" href="http://shang.qq.com/wpa/qunwpa?idkey=33dacdd367ca0b5a9ba96a196a6658666b442b3ec528850e377d50f3d607f26b"><img border="0" src="http://pub.idqqimg.com/wpa/images/group.png" alt="STV&amp;RxHttp交流群" title="STV&amp;RxHttp交流群"></a>

或者手动加QQ群:688433795

如果遇到问题或者好的建议,请反馈到:issuelygttpod@163.com 或者lygttpod@gmail.com

如果觉得对你有用的话,点一下右上的星星赞一下吧!

代码是最好的老师,更多详细用法请查看 demo:feet:

License

         Copyright 2016 Allen

        Licensed under the Apache License, Version 2.0 (the "License");
        you may not use this file except in compliance with the License.
        You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

        Unless required by applicable law or agreed to in writing, software
        distributed under the License is distributed on an "AS IS" BASIS,
        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        See the License for the specific language governing permissions and
        limitations under the License.