Android文本,软键盘全解《初级》

前言

已经有一个多月没有写文章了,当然,我没失踪,我还活着!因为换了新的工作环境,所以在接手项目的时候花了点时间……不为自己做过多借口,今后持续更新好内容(还是希望自己能周更)!

这篇文章最初是记录一个全屏模式下输入框被软键盘覆盖的问题,要求背景不动,输入框上移!碰巧之后项目发版,有一点时间,就想着能不能将Android文本使用做一个总结!结合之前自己做的一些笔记,这篇文章就顺利产出了!

其实换工作之后,我更希望能产出高质量的文章,所以我对于这篇文章的期待其实蛮高的,希望这篇文章能帮助所有开发者解决在Android开发过程中遇到的文本问题。当然,现在文章记录的是自己遇到的一些问题(不是很全面),希望各位在Android开发中遇到各种关于文本类的问题可以给我留言,我们一起来讨论,研究对应的解决方案,完善这篇文章及项目!

目录

项目效果

文本:

软键盘:

TextView的基本使用

TextView的基本属性

常用的属性:

<TextView android_text="@string/long_text" android_textSize="10sp" android_textColor="@color/black" android_shadowRadius="8" android_shadowColor="@color/black70" android_shadowDy="4" android_layout_width="wrap_content" android_layout_height="wrap_content" />

下面这些基本包含TextView的所有属性,里面很多属性大多数情况下我们都使用不到,可以稍微了解下,可以直接跳过属性列表!

图文混排的三种实现方式

1. drawableTop,DrawableBottom,DrawableLeft,drawableRight

<TextView android_id="@+id/one_pictxt_tv" android_drawableLeft="@drawable/emoji_00" android_drawableRight="@drawable/emoji_01" android_drawableBottom="@drawable/emoji_02" android_drawableTop="@drawable/emoji_03" android_text="第一种方式:n通过drawableLeft来实现n上下左右中间文字" style="@style/picTxt_tv_style" />

2. 通过ImageSpan或者DynamicDrawableSpan实现

SpannableString dynamicDrawableSpan = new SpannableString("DynamicDrawableSpan"); DynamicDrawableSpan drawableSpan = new DynamicDrawableSpan(DynamicDrawableSpan.ALIGN_BASELINE) { @Override public Drawable getDrawable() { Drawable d = getResources().getDrawable(R.drawable.emoji_00); d.setBounds(0, 0, 150, 150); return d; } }; DynamicDrawableSpan drawableSpan2 = new DynamicDrawableSpan( DynamicDrawableSpan.ALIGN_BOTTOM) { @Override public Drawable getDrawable() { Drawable d = getResources().getDrawable(R.drawable.emoji_01); d.setBounds(0, 0, 150, 150); return d; } }; dynamicDrawableSpan.setSpan(drawableSpan, 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); dynamicDrawableSpan.setSpan(drawableSpan2, 7, 8, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); mDynamicDrawableSpanTv.setText(dynamicDrawableSpan); SpannableString imageSpan = new SpannableString("ImageSpan"); Drawable d = getResources().getDrawable(R.drawable.emoji_02); d.setBounds(0, 0, 150, 150); imageSpan.setSpan(new ImageSpan(d), 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); mIamgeSpanTv.setText(imageSpan);

3. 通过给TextView设置Html内容

如果要包含图片的话需要重写一个类实现ImageGetter接口并重写getDrawable方法,具体实现可以下载底部项目源码!

mThreePictxtTv.setText(Html.fromHtml("点击我,带你到HtmlTextActivity中去<font color= '#ff0000'>textView通过Html实现图文混排</font> 点击这一段"));

带图片的html的设置:

String g = "<html>" +"<head>" + "</head>" +"<body style="text-align: justify"">"" +""t<h3>Android性能优化之APK瘦身详解(瘦身73%)</h3>"" +""t<P>公司项目在不断的改版迭代中,代码在不断的累加,终于apk包不负重负了,已经到了八十多M了。可能要换种方式表达,到目前为止没有正真的往外推过,一直在内部执行7天讨论需求,5天代码实现的阶段。你在写上个版本的内容,好了,下个版本的更新内容已经定稿了。基于这种快速开发的现状,我们app优化前已经有87.1M了,包大了,运营说这样转化不高,只能好好搞一下咯。优化过后包大小为23.1M(优化了73%

                                                        

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年8月22日
下一篇 2018年8月22日

相关推荐