大多数人都知道,一个APP的引导页面还是挺重要的,不过要想通过原生的Android代码做出一个非常炫酷的引导页相对还是比较复杂的,正巧html5在制作炫酷动画网页方面比较给力,我们不妨先利用html5做出手机引导页面,然后将其嵌入APP中. 首先我们分析一下,都需要做哪些工作? 1.制作html5引导页面. 2.把做好的页面放入Android工程中assets文件夹下. 3.利用WebView加载asset文件夹下的html文件. 4.在引导页最后一页的按钮上捕捉点击事件,结束引导页,进入程序.…
打造高质量Android应用:Android开发必知的50个诀窍…
Android开发中如何解决加载大图片时内存溢出的问题    在Android开发过程中,我们经常会遇到加载的图片过大导致内存溢出的问题,其实类似这样的问题已经屡见不鲜了,下面将一些好的解决方案分享给大家. 尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存. 因此,改用先通过BitmapFa…
依据我自己的测试,发现有时候用APP打开网页的时候,有的网页加载成功之前需要很久,有的一下就出来了(比如百度) 当加载时间过长的情况下,这时候显示的是空白界面,其实不是代码问题,只是要打开的这个网页太大了. 那么为了提高用户体验,我们就得想办法在这个空白界面等待的情况下加点东西. 首先,想到的就是提示框 具体操作呢 package com.example.qunxiong; import android.app.Activity; import android.app.AlertDialog;…
简介 Fresco是一个在Android应用程序中显示图像的强大系统. Fresco负责图像的加载和显示.它将从网络.本地存储或本地资源加载图像,图像加载完成前会显示一个占位图片.它有两个级别的缓存:一个在内存中,另一个在内部存储器中. 在android 4.x及更低版本中,Fresco将图像放在android内存的一个特殊区域.这可以让您的应用程序运行得更快,减少因为内存不足的错误. github地址:https://github.com/facebook/fresco#requirement…
不是新东西,就是在项目里面用到H5页面的时候,中间加载延迟的时候,在最上面加载一个进度条,代码如下: // 获取屏幕 宽度.高度 bounds就是屏幕的全部区域 #define KDeviceWidth [UIScreen mainScreen].bounds.size.width #define KDeviceHeight [UIScreen mainScreen].bounds.size.height #define IS_IPHONE_X (KDeviceHeight == 812.0f)…
开发过Android的童鞋都会遇到一个问题,就是在打印Toast提示时,如果短时间内触发多个提示,就会造成Toast不停的重复出现,直到被触发的Toast全部显示完为止.这虽然不是什么大毛病,但在用户体验上听让人发狂的.本篇博文就是介绍怎么自定义Toast提示,不仅能完美的解决上述问题,而且还能自定义提示UI. 先看一下效果图(左边是普通的toast提示,右边是自定义的):          光看效果图,可能还感受不到什么不同,点击多次之后就会发现文章开头说的情况. 接着看一下自定Toast的开…
在开发过程中,与用户交互式免不了会用到对话框以实现更好的用户体验,所以掌握几种对话框的实现方法还是非常有必要的.在看具体实例之前先对AlertDialog做一个简单介绍.AlertDialog是功能最丰富.实践应用最广的对话框,它可以生成各种内容的对话框.但实际上AlertDialog生成的对话框总体可分为以下4个区域:图标区.标题区.内容区.按钮区. 一般创建一个对话框需要经过以下几步: 1.创建AlertDialog.Builder对象. 2.调用AlertDialog.Builder的se…
这两天在写一个柱状图的自定义控件,用的直接继承ViewGroup的方式实现的,我们都知道,这是自定义控件里面最简单的一种了,有时间写个总结分享一下.这里我想说的重点是,在写这个自定义控件的时候遇到了个关于View.setId()小问题,在网上查了好多,有很多回答真是纯属扯淡,最后终于在stackoverflow上找到了零零碎碎的解决方案,stackoverflow真是一个好地方,几乎所有的问题都可以在上面找到解决方案.在此对这个问题整理记录下来,以便参考. 其实这个问题也应该是一个开发者必须提前…
mWebView = (WebView) findViewById(R.id.mwebview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.setWebViewClient(new webViewClient ()); //自适应屏幕 mWebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); mWebView.getSettin…