2024年Android最新Android修行手册-简单的玩玩TextView(3),2024年最新蚂蚁金服二面有多难

最后的最后

对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

当你有了学习线路,学习哪些内容,也知道以后的路怎么走了,理论看多了总要实践的

最后,互联网不存在所谓的寒冬,只是你没有努力罢了!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

<TextView

android:id=“@+id/test_text_anim”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”

android:drawableTop=“@drawable/test_tsxt_anim”

android:text=“接着奏乐,接着舞” />

之后在代码中执行

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_test);

testTextAnim = (TextView) findViewById(R.id.test_text_anim);

Drawable[] drawables = testTextAnim.getCompoundDrawables();

for (Drawable drawable : drawables) {

if (drawable instanceof Animatable) {

((Animatable) drawable).start();

}

}

}

获取view之后利用getCompoundDrawables得到图片,用if判断是否为实现类Animatable的drawable,如下,虽然shape和selector也能用,但是只有animation的if (drawable instanceof Animatable) 才为true。

image.png

运行效果:

TextView的动画1.gif

不过,有的同学会提问:这再怎么看和TextView动画也没关系啊,确实。这只是简单提了提,因为这方面有相关的三方库方便使用,所以详情看前辈的项目即可。感谢开源精神!

😜图文混排

Android官方对TextView的图文混排提供了支持,只需要用HTML语言即可,实现的效果很丰富。

private String testHtml = “<font color=”#f0717e">人只要活得够,就总能遇上被自己<font color=“#f0717e”>蠢到的那一天";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_test);

testTextAnim = (TextView) findViewById(R.id.test_text_anim);

testTextAnim.setText(Html.fromHtml(testHtml, Html.FROM_HTML_MODE_COMPACT));

}

运行效果:

image.png

上面是使用的html标签来实现的形式,其实还有一个就是利用SpannableString

testTextSpan1 = (TextView) findViewById(R.id.test_text_span1);

testTextSpan2 = (TextView) findViewById(R.id.test_text_span2);

SpannableString spannableString = new SpannableString(“千重要,万重要,一技之长最重要”);

spannableString.setSpan(new ForegroundColorSpan(Color.parseColor(“#FF0000”)), 2, spannableString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

spannableString.setSpan(new BackgroundColorSpan(Color.parseColor(“#00ff00”)), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

testTextSpan1.setText(spannableString);

Spannable sp = new SpannableString(“啊,这该死的高级感”);

sp.setSpan(new AbsoluteSizeSpan(20, true), 0, 2, Spannable.SPAN_INCLUSIVE_INCLUSIVE);

sp.setSpan(new AbsoluteSizeSpan(12, true), 2, 3, Spannable.SPAN_INCLUSIVE_INCLUSIVE);

sp.setSpan(new AbsoluteSizeSpan(30, true), 3, sp.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE);

sp.setSpan(new ForegroundColorSpan(Color.parseColor(“#0000ff”)), 2, sp.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

testTextSpan2.setText(sp);

image.png

利用SpannableString包裹住字符串,里面有四个参数。

参数1可以是AbsoluteSizeSpan设置字体大小,也可以是ForegroundColorSpan设置字体颜色,还可以是BackgroundColorSpan设置文字背景颜色。

参数2想要修改字符串中起始index(start),参数3是想要修改字符串中的结束index(end)。

参数4参数2参数3的补充,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE — 不包含两端start和end所在的端点

Spanned.SPAN_EXCLUSIVE_INCLUSIVE — 不包含端start,但包含end所在的端点

Spanned.SPAN_INCLUSIVE_EXCLUSIVE — 包含两端start,但不包含end所在的端点

Spanned.SPAN_INCLUSIVE_INCLUSIVE— 包含两端start和end所在的端点

AbsoluteSizeSpan有两个参数,参数1代表size大小,true代表是android的sp单位,false则是像素单位,建议用true。

😜开源项目

SuperTextView:一个很强大的控件元素,灵动多变,为你提供丰富多彩的功能,炫目效果即刻而至。

👉其他


📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.youkuaiyun.com/
📢欢迎点赞👍收藏🌟留言📝

尾声

评论里面有些同学有疑问关于如何学习material design控件,我的建议是去GitHub搜,有很多同行给的例子,这些栗子足够入门。

有朋友说要是动真格的话,需要NDK以及JVM等的知识,首现**NDK并不是神秘的东西,**你跟着官方的步骤走一遍就知道什么回事了,无非就是一些代码格式以及原生/JAVA内存交互,进阶一点的有原生/JAVA线程交互,线程交互确实有点蛋疼,但平常避免用就好了,再说对于初学者来说关心NDK干嘛,据鄙人以前的经历,只在音视频通信和一个嵌入式信号处理(离线)的两个项目中用过,嵌入式信号处理是JAVA->NDK->.SO->MATLAB这样调用的我原来MATLAB的代码,其他的大多就用在游戏上了吧,一般的互联网公司会有人给你公司的SO包的。
至于JVM,该掌握的那部分,相信我,你会掌握的,不该你掌握的,有那些专门研究JVM的人来做,不如省省心有空看看计算机系统,编译原理。

一句话,平常多写多练,这是最基本的程序员的素质,尽量挤时间,读理论基础书籍,JVM不是未来30年唯一的虚拟机,JAVA也不一定再风靡未来30年工业界,其他的系统和语言也会雨后春笋冒出来,但你理论扎实会让你很快理解学会一个语言或者框架,你平常写的多会让你很快熟练的将新学的东西应用到实际中。
初学者,一句话,多练。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值