java基础一些算法(第三篇)

0
回复
121
查看
[复制链接]

63

主题

308

帖子

4910

安币

码皇(巴士元老)

Rank: 8Rank: 8

QQ达人

QQ
发表于 2019-4-30 15:55:01 | 显示全部楼层 |阅读模式
如果对本篇文章感兴趣,请前往,原文地址:http://www.apkbus.com/blog-340477-79980.html

![图片描述](/data/attachment/album/201904/30/154059fybqqjxqjq4s4riy.jpg)展开全部的时候展开所有。这个效果大家有什么想法。1.一种方法是直接自定义Textview来写。2.第二种是直接自定义view来写,但是太麻烦3.算好字体一行显示几个五行的时候加展开全部,点击的时候我们在把Tesxtview设置setLine很多行4.当时候我我想过这几种都感觉麻烦,估计小伙伴也有这样的想法后来我想到一个办法,就是用俩个textview隐藏显示,然后在配合SpannableString跟ClickableSpan这些还可以个textview做下划线之类我相信大家百度都可以搜索怎么用之类,我说这个是让大家有碰到这个效果的时候知道怎么解决,有个方法,方向。下面是代码:  private String agreementHead;    private String agreementHead2;    private String agreementEnd = "展开全部";    private String agreementEnd2 = "收起"; private String boorowerTitle;    private void setTextDate(String agreementHead) {        tv_loveproject_sayname2.setVisibility(View.GONE);        tv_loveproject_sayname.setVisibility(View.VISIBLE);        tv_loveproject_sayname.setText("");        String boorower = borrower_info.getBorrowdescription();        if (boorower.length()>130){            boorowerTitle = boorower.substring(0, 123);//borrower_info.getBorrowdescription()            agreementHead = boorowerTitle   "...";        }else {            boorowerTitle=boorower;        }        SpannableString spanAgreementHead = new SpannableString(agreementHead);        SpannableString spanAgreementEnd = new SpannableString(agreementEnd);        ClickableSpan my_clickableSpan1 = new My_ClickableSpan(this, agreementHead);        ClickableSpan my_clickableSpan2 = new My_ClickableSpan(this, agreementEnd);        spanAgreementHead.setSpan(my_clickableSpan1, 0, agreementHead.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);        spanAgreementEnd.setSpan(my_clickableSpan2, 0, agreementEnd.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);        tv_loveproject_sayname.append(spanAgreementHead);        tv_loveproject_sayname.append(spanAgreementEnd);        tv_loveproject_sayname.setMovementMethod(LinkMovementMethod.getInstance());        tv_loveproject_sayname.setHighlightColor(Color.TRANSPARENT); //设置点击后的颜色为透明    } public class My_ClickableSpan extends ClickableSpan {        private String content;        private Context context;        public My_ClickableSpan(Context context, String content) {            this.context = context;            this.content = content;        }        @Override        public void onClick(View widget) {            if (content.equals(agreementEnd)) {                //跳转                agreementHead2 = "";                setTextDate2(borrower_info.getBorrowdescription());            }        }        @Override        public void updateDrawState(TextPaint ds) {            if (content.equals(agreementHead)) {                ds.setColor(context.getResources().getColor(R.color.mains_heise));            } else if (content.equals(agreementEnd)) {                ds.setColor(context.getResources().getColor(R.color.lanse));            }        }    } /**     * 第二个     */    private void setTextDate2(String agreementHead2) {        tv_loveproject_sayname.setVisibility(View.GONE);        tv_loveproject_sayname2.setVisibility(View.VISIBLE);        tv_loveproject_sayname2.setText("");        SpannableString spanAgreementHead = new SpannableString(agreementHead2);        SpannableString spanAgreementEnd = new SpannableString(agreementEnd2);        ClickableSpan my_clickableSpan1 = new My_ClickableSpan2(this, agreementHead2);        ClickableSpan my_clickableSpan2 = new My_ClickableSpan2(this, agreementEnd2);        spanAgreementHead.setSpan(my_clickableSpan1, 0, agreementHead2.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);        spanAgreementEnd.setSpan(my_clickableSpan2, 0, agreementEnd2.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);        tv_loveproject_sayname2.append(spanAgreementHead);        tv_loveproject_sayname2.append(spanAgreementEnd);        tv_loveproject_sayname2.setMovementMethod(LinkMovementMethod.getInstance());        tv_loveproject_sayname2.setHighlightColor(Color.TRANSPARENT); //设置点击后的颜色为透明    }    public class My_ClickableSpan2 extends ClickableSpan {        private String content;        private Context context;        public My_ClickableSpan2(Context context, String content) {            this.context = context;            this.content = content;        }        @Override        public void onClick(View widget) {            if (content.equals(agreementEnd2)) {                //跳转                agreementHead = "";                setTextDate(borrower_info.getBorrowdescription());            }        }        @Override        public void updateDrawState(TextPaint ds) {            if (content.equals(agreementHead2)) {                ds.setColor(context.getResources().getColor(R.color.mains_heise));            } else if (content.equals(agreementEnd2)) {                ds.setColor(context.getResources().getColor(R.color.lanse));            }        }    }  继续阅读全文



想在安卓巴士找到更多优质博文,可移步博客区

如果对本篇文章感兴趣,请前往,
原文地址:
http://www.apkbus.com/blog-340477-79980.html
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )