Android-技巧

TextView显示下划线的两种方法

1、Android TextView中显示下划线的两种方法
1.在资源文件里的写法

<string name="key"><u>content</u></string>

2.在代码中的写法

TextView textView = (TextView)findViewById(R.id.testView);   
textView.setText(Html.fromHtml("<u>"+"content"+"</u>"));  

理解抽象,封装变化

//Activity 间使用 Intent 传递数据的两种写法 下面均是伪代码形式,请忽略一些细节

//写法一

//SrcActivity 传递数据给 DestActivity
Intent intent = new Intent(this,DestActivity.class);
intent.putExtra("param", "clock");
SrcActivity.startActivity(intent);

//DestActivity 获取 SrcActivity 传递过来的数据
String param = getIntent.getStringExtra("param");

//写法二

//SrcActivity 传递数据给 DestActivity
Intent intent = new Intent(this,DestActivity.class);
intent.putExtra(DestActivity.EXTRA_PARAM, "clock");
SrcActivity.startActivity(intent);

//DestActivity 获取 SrcActivity 传递过来的数据
public final static String EXTRA_PARAM = "param";
String param = getIntent.getStringExtra(EXTRA_PARAM);

写法一,存在的问题是,如果 SrcActivity 和 DestActivity 哪个把 "param" 打错成 "para" 或者 "paran" ,传递的数据都无法成功接收到。而写法二则不会出现此类问题,因为两个 Activity 之间传递数据只需要知道 EXTRA_PARAM 变量即可,至于 EXTRA_PARAM 变量到底是 "param" 、 "para" 、"paran" 这一点并不需要关心,这就是一种对可能发生变化的地方进行抽象封装的体现,它所带来的好处就是降低手抖出错的概率,同时方便我们进行修改。

assert与raw的区别

res/raw和asserts的相同点:
1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制文件
res/raw和assets的不同点:
1.res/raw中的文件会被映射到R.Java文件中,访问的时候直接使用资源ID,即
R.id.filename,.
assets文件夹下的文件不会被映射到到R.java文件中,访问的时候需要AssetManager类
2.res/raw不可以有目录,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹

读取文件资源:
1.读取res/raw下的文件资源,通过以下方式获取输入流来进行读写操作

  InputStream is =getResources().openRawResource(R.id.filename);

2.读取assets下的文件资源,通过以下方式获取输入流来进行写操作·

 AssetManager am = null;  
 am = getAssets();  
 InputStream is = am.open("filename");  

Theme与Style的区别

1.Theme(是针对窗体级别的,可以改变窗体样式)
A.应用到Application

<application android:theme="@style/CustomTheme">

** B.应用到Activity**

<activity android:theme="@android:style/Theme.Dialog">

2.Style(是针对窗体元素级别的,改变指定控件或者Layout的样式)
如果你要在java代码中加载主题的话,只要用setTheme(R.style.CustomTheme)就可以了,不过记得一定要在初始化任何view之前,比如一定要放在我们常用的setContentView()之前。通常,我们不建议这么做。

ImageView中的src与background

src :为ImageView 原图内容,存放原图大小,不会被拉伸;
background:为Imageview的背景,会根据ImageView给定的长宽进行拉伸;

在ImageView中,可以同时设置src和background属性(为了减少绘制,可以根据使用场景来设置相应属性); 由于src中存放的是原图大小,如果需要对其缩放,就需要使用android:scaleTyle这个属性(scaleType 只对src属性有效),另外还可以对background设置透明度。

正确设置Imageview的透明度

ImageView 设置透明度主要有以下三种方法:
1、setAlpha(@FloatRange(from=0.0, to=1.0) float alpha) (View提供
2、setAlpha(int alpha) (已经标记为@Deprecated
3、setImageAlpha(int alpha) (API>=16

合理使用src (前景)和background(背景)就可以实现

Gone与INVISIBLE的区别

当控件visibility属性为INVISIBLE时,界面保留了view控件所占有的空间;而控件属性为GONE时,界面则不保留view控件所占有的空间。

异步、同步、并行、串行的区别

异步:发送方发出数据后,不用等接收方发回响应,接着发送下个数据包的通讯方式。【比如,主main函数的代码从上往下执行,new一个Thread并在子线程中途执行了sleep 10秒钟,而主main函数后面的代码不需要等子线程sleep完10秒再执行,而是直接继续执行下面的代码。】
同步:发送方发出数据后,需要等接收方发回响应以后才发下一个数据包的通讯方式。【比如,主main函数的代码从上往下执行,如果中途执行了sleep 10秒钟,则后面的代码都要等10秒后才会执行。】
并行:也称为并发。从宏观上来理解,就是在同一时间内同时执行多个线程任务。【比如,同时开启10张图片下载,宏观上他们是10张图同时下载的。】
串行:可以理解为,只有当一个线程执行完毕之后,才会执行下个线程。【比如,10张图片下载线程串行执行,只能是第一张下载完后,才会开始执行下一张图片下载。】

Android Version与Android API Version

Android version API version
3.2 API 13
4.1 API 16
4.2 API 17
4.3 API 18
4.4 API 19
5.0 API 21
5.1 API 22
6.0 API 23
7.0 API 24
7.1.1 API 25

在onCreate中获得View的宽度和高度

在onCreate里调用getWidth()和getHeight()会返回0,可以通过View的post方法获取宽度和高度。

发布时移除日志语句

在混淆文件中加入以下语句进混淆即可移除

-assumenosideeffects class android.util.Log { 
     public static *** d(...);
}

建议使用 compound drawables ;

TextView
 comes with 4 compound drawables, one for each of left, top, right and bottom.
In your case, you do not need the LinearLayout
 and ImageView
 at all. Just add android:drawableLeft="@drawable/up_count_big"
 to your TextView
.```See [TextView#setCompoundDrawablesWithIntrinsicBounds](http://developer.android.com/reference/android/widget/TextView.html#setCompoundDrawablesWithIntrinsicBounds(int,%20int,%20int,%20int)) for more info.


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,344评论 0 17
  • 1、教程Markdown 在线网址, 动态权限授权示例. 2、在线视频剪切网站 非常不错的在线网站, 处理音频和视...
    MrWu_阅读 642评论 0 1
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,375评论 25 707
  • 那年那月那那码事 电话打通。 是公示在大马路牌上的号码。 请问是XX 区交警大队吗? 是啊。有什么事咧? 接电话...
    狗尾巴花花摇啊摇阅读 541评论 0 0
  • 之前写吸引力法则那篇文的时候,就想过要单成一文写云燕姐,今天早上看了云燕姐的文章,躺在床上就想,我要写她。 云燕姐...
    蜕变的林林阅读 413评论 0 5