Android UI中英文自动显示问题

最近做了一个项目,其中有个视频和图片需要添加各种水印(日期,地点,经纬度,用户ID,产品ID等)问题,而且水印还要支持中英文自动切换显示。功能设计和实现算是比较顺利。昨天测试部给了一个小Bug,那就是在英文环境下,视频预览界面水印能正常显示英文,但通过拍照所获得的图片上的水印却显示为中文!而添加水印这一块代码是完全一样的啊?问题出在哪呢?

经过反复测试,没有发现代码有明显问题。于是凭直觉,就想难道是context上下文不同有关?于是检查代码发现context确实不同,在Activity View下的Context下,水印英文是可以自动切换过去的,而在Application的Context下水印只能显示中文!那么这两个context究竟有何不同呢?

这是两种不同的context:

1.  Application context的生命周期与Application的生命周期相关的,context随着Application的销毁而销毁,伴随application的一生,与activity的生命周期无关.

2. Activity中的context跟Activity的生命周期是相关的,但是对一个Application来说,Activity可以销毁几次,那么属于Activity的context就会销毁多次.

3. 可以通过Activity的context获得Application context,可以通过Context.getApplicationContext 或者 Activity.getApplication方法获取。

引起内存泄漏的常见场景:

1.  错误的单例模式

2. View持有Activity引用

注意事项:使用context的时候,小心内存泄露,防止内存泄露!
1. 不要让生命周期长的对象引用activity context,即保证引用activity的对象要与activity本身生命周期是一样的 ;
2. 对于生命周期长的对象,可以使用application context;
3. 避免非静态的内部类,尽量使用静态类,避免生命周期问题,注意内部类对外部对象引用导致的生命周期变化。

详细参见:

【简书】https://www.jianshu.com/p/4f97baa0e8f7

【简书】https://www.jianshu.com/p/94e0f9ab3f1d //Context作用域以及引起内存泄漏的场景
【csdn】https://blog.csdn.net/u014639129/article/details/52741497

原文地址:https://www.cnblogs.com/wangqiang9/p/10400257.html

时间: 2024-10-03 23:04:21

Android UI中英文自动显示问题的相关文章

[Android UI]可自动切换、无限滑动的图片广告展示栏的实现分享(续1)

本文非技术类文章,博主只是想分享这样的一种实现方法,帮助有需要的开发人员减少工作量.我是学java出身的,做开发2年了,很理解一句话:工欲善其事必先利其器. 继另一篇博文:[Android初级]可自动切换.无限滑动的广告栏的实现  ,我觉得还有更好的方式来展示,这个比较合适更多开发人员. 本次实现的demo,用到了第三方的开源框架:1.JazzyViewPager https://github.com/jfeinstein10/JazzyViewPager(主要用它,效果比较多) 2.unive

Android在非UI线程中显示Toast

[java] view plaincopyprint? public void showToast(String msg){ Looper.prepare(); Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_SHORT).show(); Looper.loop(); } public void showToast(String msg){ Looper.prepare(); Toast.makeText(getApplicat

【转】Android UI系列-----时间、日期、Toasts和进度条Dialog

原文网址:http://www.cnblogs.com/xiaoluo501395377/p/3421727.html 您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态. 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内容有任何疑问, 可以通过评论或发邮件的方式联系我: [email protected] / [email protected] 如果需要转载,请注明出处,谢谢!! 本篇随笔将继续学

Android UI学习 - ListView (android.R.layout.simple_list_item_1是个什么东西)

Android UI学习 - ListView 2010-06-20 18:21:35 标签:Android UI 移动开发 ListView ListActivity 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://android.blog.51cto.com/268543/336162 ListActivity ListActivity是一个专门显示ListView的Activity类,它内置了ListView对象,只要我

android UI设计时需要注意遵循的设计原则

1.Android设备屏幕尺寸分布 首先看一下各种屏幕的尺寸和屏幕密度划分,下图是各种屏幕尺寸对应的范围: 从上图可以看出,对应normal尺寸的屏幕范围集中在常见的3到5寸屏之间,large尺寸对应的就主要是5到7寸的nottpad之类的设备,例如三星的Note和Nexus7平板等,再网上走就是平板电脑了.接下来是屏幕密度(dpi),需要说明的时,平时所说的屏幕分辨率其实不能作为屏幕适配的依据,应该依据屏幕密度和屏幕尺寸来换算,屏幕密度是指每寸屏幕内容纳的像素数,屏幕密度从ldpi到xhdpi

Android UI个性style

Android开源项目第一篇--个性化控件(View) ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar.TextView.ScrollView.TimeView.TipView.FlipView.ColorPickView.GraphView.UI Style.其他 Android开源项目第二篇--工具库篇 包括依赖注入.图片缓存.网络相关.数据库ORM工具包.Android公共库.高版本向低版本兼

[转]Android UI 自动化测试

介绍 Android测试支持库包含UI自动化模块,它可以对Android应用进行自动黑盒测试.在API Level 18中引入了自动化模块,它允许开发者在组成应用UI的控件上模仿用户行为. 在这个教程中,我将展示如何使用此模块来创建和执行一个基本的UI测试,选择默认的计算器模块进行测试. 先决条件 在使用前,需要具备以下条件: 最新版本的Android Studio 运行Android 4.3或者更高版本的设备或者虚拟器 理解JUnit 1. 安装依赖库 工程中使用UI自动化模块,需要编辑你的工

10款实用Android UI工具库

移动应用的UI设计就好似达摩克利斯之剑,一方面,一个视觉.交互.体验良好的UI可以加强应用在用户心目中的形象和识别性.而另一方面,一个体验糟糕的UI设计不仅无法让用户沉浸在应用中,还会造成用户对应用产生厌恶感.所以说在进行应用开发时,一个高质量的UI对于提高应用下载量有着非常重要的作用.对此,本文特为广大的移动应用开发者献上10款非常实用的Android UI设计工具. ActionBarSherlock:一个独立的设计库,也是GitHub上很火的一个开源项目 Nine Old Androids

Android UI 设计规范

1. 基础常识 1.1 主流屏幕尺寸 标识 屏幕尺寸 hdpi 480 * 800 xhdpi 720 * 1280 xxhdpi 1080 * 1920 1.2 图标尺寸 标识 启动图标尺寸 菜单图标尺寸 mdpi 48 * 48 (160 DPI ) 24 * 24 hdpi 72 * 72(240 DPI) 36 * 36 xhdpi 96 * 96 (320 DPI) 48 * 48 xxhdpi 144 * 144(480 DPI ) 72 * 72 xxxhdpi 192 * 192