安卓编程之自定义字体控件导致应用闪退

  这坑踩的是结结实实,近来做项目,需要用到自定义字体,一个项目中近十种字体,果断选择了使用自定义控件来实现。

  可是,大功告成之后,在性能较差的手机上去运行时,反复切换页面,应用闪退了,log没有有效的信息给到,百思不得其解啊。

  解决方案:

    在自己封装的MyApplication中,将自定义的字体的Typeface这个对象全局化。

    

    然后,在自定义控件中使用全局的字体对象。

    

   到这里,这个问题基本解决。

   总结如下:

      当app界面跳转时没有完美运行自己写的动画效果,给人以卡顿的效果,那么就说明主线程中有耗时的操作(本文中的耗时操作就是Typeface.createFromAsset(getAssets(), "HYQiHeiX2-45W-2.ttf"))。

原文地址:https://www.cnblogs.com/qynprime/p/9670149.html

时间: 2024-10-01 14:51:56

安卓编程之自定义字体控件导致应用闪退的相关文章

WPF编程之自定义Button控件样式

自.NET Framework 3.0 以后,WPF编程框架可使开发人员开发出更加令人耳目一新的桌面应用程序.它使开发工作更加方便快捷,它将设计人员和编程人员的工作分离开来.至于WPF的背景历史.框架特点.框架结构这里就不再赘述.有兴趣的同袍可在百度搜索关于WPF的相关知识介绍,如WPF. 在微软在WPF框架里提供了一些基础功能各异的控件,例如Button.TextBox.Label.Panel.TextBlock等等.微软将这些组件可视化集成到Visual Studio集成开发工具中了,这在实

安卓开发笔记——自定义HorizontalScrollView控件(实现QQ5.0侧滑效果)

对于滑动菜单栏SlidingMenu,大家应该都不陌生,在市场上的一些APP应用里经常可以见到,比如人人网,FaceBook等. 前段时间QQ5.0版本出来后也采用了这种设计风格:(下面是效果图) 之前在GitHub上看到过关于此设计风格的开源项目,它只需要引入对应的类库,就可以定制灵活.各种阴影和渐变以及动画的滑动效果的侧滑菜单. 但作为开发人员,在学习阶段还是建议尽可能的去自己实现,所以今天我不讲此开源项目的使用方式,我们用自定义HorizontalScrollView来实现此效果. 下面先

安卓自定义组合控件--toolbar

最近在学习安卓APP的开发,用到了toolbar这个控件, 最开始使用时include layout这种方法,不过感觉封装性不好,就又改成了自定义组合控件的方式. 使用的工具为android studio 2.2,简称AS吧 1.首先创建一个新的自定义控件,如下图.AS会创建3个文件,  一个java文件,一个layout中的xml文件(这个是布局文件),一个values中的xml文件(这个是属性文件) 2. 修改布局文件,代码如下.这里使用了RelativeLayout,  并且宽度和高度都选

安卓自定义日历控件

尊重作者劳动成果,转载请注明出处:http://blog.csdn.net/baiyuliang2013/article/details/37732149 最近,因工作需要,需要实现自定义日历控件功能,主要应用于软件中的酒店入住时间选择功能,进入日历后,可选择入住时间,及离开时间,选择完成后,再次进入日历时,会显示上次选中的结果,默认选择日期是在距当前日期三个月内,三个月以外的均以灰色显示,且不可点击.本篇实现的效果是高仿某软件的界面效果: 某软件界面效果: 本篇实现的效果: 另外,对于日期选择

Android自定义控件之自定义组合控件(三)

前言: 前两篇介绍了自定义控件的基础原理Android自定义控件之基本原理(一).自定义属性Android自定义控件之自定义属性(二).今天重点介绍一下如何通过自定义组合控件来提高布局的复用,降低开发成本,以及维护成本. 使用自定义组合控件的好处? 我们在项目开发中经常会遇见很多相似或者相同的布局,比如APP的标题栏,我们从三种方式实现标题栏来对比自定义组件带来的好处,毕竟好的东西还是以提高开发效率,降低开发成本为导向的. 1.)第一种方式:直接在每个xml布局中写相同的标题栏布局代码 <?xm

Android_自定义切换控件SwitchView

今天做了一下老师给的第一套题,第一题是判断一个字符串是否在另一个字符串中:做了一下,感觉有好多种写法,java中的类真的好多啊,要掌握好一些基本类的用法: package com.exam.e120; public class java1 { public static void main(String[]args){ String str1,str2; str1="I am Tom, I am from China."; str2="Tom"; int i=str

C#自定义工业控件开发

转自阿凡卢原文C#自定义工业控件开发 由于工作需要,调研过一段时间的工业控制方面的"组态软件"(SCADA)的开发,组态软件常用于自动化工业控制领域,其中包括实时数据采集.数据储存.设备控制和数据展现等功能.其中工控组件的界面展现的实现类似于Windows系统下的各种开发控件,通过各种控件的组装,和硬件协议的集成,就可以实现对相应设备的控制和实时状态的显示. 每个对应的硬件UI展示都可以用一个自定义控件来实现,如下图的一个温度计,就可以使用UserControl来实现. using S

自定义可视控件

由于本软件为音乐软件,需要大量绘图,现有的基于DC的API及BCB的画布均不能完成要求(速度慢,绘制特定图案困难),为了节省时间,派生了现有的TWinControl可视窗口控件,组合特定的绘图类,形成一个新的类,图案绘制在可视区域,重载控件的鼠标及键盘事件处理,形成标准的控制,这一切都实现了,但结果失败了,原因是自绘图完成后,系统刷新了一下控件,结果悲催了,改变窗体尺寸也要刷下一,可视窗口控件这一动作是正常的,问题是系统不认我的自绘图.解决问题的办法是系统刷后再绘,那么就截获WM_SIZE消息,

android 自定义组合控件

自定义控件是一些android程序员感觉很难攻破的难点,起码对我来说是这样的,但是我们可以在网上找一些好的博客关于自定义控件好好拿过来学习研究下,多练,多写点也能找到感觉,把一些原理弄懂,今天就讲下自定义组合控件,这个特别适合在标题栏或者设置界面,看下面图: 就非常适合使用组合控件了,现在写一个玩玩: activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"