博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android开发中的一些小技巧
阅读量:5742 次
发布时间:2019-06-18

本文共 2655 字,大约阅读时间需要 8 分钟。

android:id="@android:id/empty"

与ListView配合使用,当ListView中没有数据时,显示id为empty的组件。当然对RecyclerView也是适用的。


使用TextPaint而不是Paint绘制文本

设置View的显示范围

view.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);复制代码

RecyclerView.notifyItemChanged()


view.setTranslationZ(-1); //让组件位于其他组件下边


将View裁剪为圆形等(API >= 21)

view.setOutlineProvider(new ViewOutlineProvider() {            @Override            public void getOutline(View view, Outline outline) {                outline.setOval(view.getPaddingLeft(), view.getPaddingTop(),                        view.getWidth() - view.getPaddingRight(),                        view.getHeight() - view.getPaddingBottom());            }        });setClipToOutline(true);复制代码

String的格式化

¥%.2f/%s
android:text="@{@string/price_symbol_formatted_string(goods.price,goods.unit)}"
%s% 好评 ]]>
复制代码

上述代码从上到下结果示例: ¥94.24/kg 96% 好评

SpannableString

ClickableSpan:具有点击时间的文本效果 MaskFilterSpan:如模糊效果(BlurMaskFilter),浮雕效果(EmbossMaskFilter) RasterizerSpan:光栅效果 DynamicDrawableSpan:设置图片,基于文本baseline或bottom对齐 SubscriptSpan:下标 SuperscriptSpan:上标 UrlSpan:文本超链接 AlignmentSpan:对齐方式 TypefaceSpan:字体 StyleSpan:字体样式,例如对文本加粗、斜体等 AbsoluteSizeSpan:字体绝对大小 RelativeSizeSpan:字体相对大小 BackgroundColorSpan:背景色 ForegroundColorSpan:前景色 TextAppearanceSpan:文本外貌,包括字体、样式、大小、颜色等

e.g.

String base = "北京到湖南的";String append = "[路线]";String com = base + append;SpannableString ss = new SpannableString(com);ss.setSpan(new ClickableSpan() {    @Override    public void onClick(View widget) {        Toast.makeText(MainActivity.this, "路线", Toast.LENGTH_LONG).show();    }    @Override    public void updateDrawState(TextPaint ds) {        super.updateDrawState(ds);    }}, base.length(), com.length(),Spanned.SPAN_INCLUSIVE_EXCLUSIVE);TextView textView = (TextView) findViewById(R.id.text);//必须设置MovementMethodtextView.setMovementMethod(LinkMovementMethod.getInstance());textView.setText(ss);复制代码

处理Markdown

使用StrictMode来检测内存泄漏

//add follow codes in your Application#onCreate()StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder();//android 2.3添加StrickMode之后只能监测到数据库是否关闭builder.detectLeakedSqLiteObjects();//在android 3.0之后,可以监测Activity泄漏,对象泄漏,对象未关闭泄漏if (VERSION.SDK_INIT >= Build.VERSION_CODES.HONEYCOMB){    builder.detectActivityLeaks().detectLeakedClosableObjects();}复制代码

屏幕旋转失效

与主题冲突:

android:windowIsTranslucent="true"复制代码

InputMethodManager导致内存泄露

https://gist.github.com/pyricau/4df64341cc978a7de414

转载于:https://juejin.im/post/5a3d28dcf265da4315241b87

你可能感兴趣的文章
信息可视化的经典案例:伦敦地铁线路图
查看>>
10个巨大的科学难题需要大数据解决方案
查看>>
Setting Up a Kerberos server (with Debian/Ubuntu)
查看>>
用 ThreadLocal 管理用户session
查看>>
setprecision后是要四舍五入吗?
查看>>
shiro初步 shiro授权
查看>>
上云就是这么简单——阿里云10分钟快速入门
查看>>
MFC多线程的创建,包括工作线程和用户界面线程
查看>>
我的友情链接
查看>>
FreeNAS8 ISCSI target & initiator for linux/windows
查看>>
cvs文件提交冲突解决方案
查看>>
PostgreSQL数据库集群初始化
查看>>
++重载
查看>>
Rainbond 5.0.4版本发布-做最好用的云应用操作系统
查看>>
nodejs 完成mqtt服务端
查看>>
在ASP.NET MVC 中获取当前URL、controller、action
查看>>
Spring IoC容器初的初始化过程
查看>>
sql server 触发器
查看>>
[工具]前端自动化工具grunt+bower+yoman
查看>>
自动化测试之WatiN(2)
查看>>