@SuppressLint 和 @TargetApi达到的效果是一样的,相对于SuppressLint ,TargetApi会根据函数里使用的API,严格匹配SDK版本,给出编译错误,但是SuppressLint 则忽略了SDK版本. 例如: @TargetApi(Build.VERSION_CODES.FROYO) public static File getExternalCacheDir(Context context) { File dir; //        if (!Version…
在Android代码中,我们有时会使用比我们在AndroidManifest中设置的android:minSdkVersion版本更高的方法,此时编译器会提示警告, 解决方法是在方法上加上@SuppressLint("NewApi")或者@TargetApi(). 那他们之间有什么区别呢,很简单, @SuppressLint("NewApi")屏蔽一切新api中才能使用的方法报的android lint错误 @TargetApi() 只屏蔽某一新api中才能使用的方…
在Android代码中,我们有时会使用比我们在AndroidManifest中设置的android:minSdkVersion版本更高的方法,此时编译器会提示警告, 解决方法是在方法上加上@SuppressLint("NewApi")或者@TargetApi(). 那他们之间有什么区别呢,很简单, @SuppressLint("NewApi")屏蔽一切新api中才能使用的方法报的android lint错误 @TargetApi() 只屏蔽某一新api中才能使用的方…
Android中高低API版本兼容使用@TargetApi或者@SuppressLint("NewApi") 例如:AndroidManifest.xml中,我们配置了sdk版本的最低为9,目标sdk为19 <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="19" /> 当我们使用了大于sdk版本为9的API时候,编译器就会提示警告.例如: import and…
看别人的代码好多地方用到了@TargetApi.以前一直不知道这个是什么意思.后面偶然看了下sdk.才有所明白. 其实这个东西就是在你使用了android Lint检查工具的时候,为了防止代码出现提示性错误而设计的.说白了,如果你关闭了android Lint,那么这个对你屁用都没有. 比如你的androidmanifest设置了minsdkversion为8,那么你在代码中使用了高于api8的代码, 就算你用的是4.4的sdk进行的代码编译,只要你没使用@TargetApi,很抱歉,运行and…
这个是android带的lint工具提示的,lint官方的说法是 Improving Your Code with lint,应该是帮助提升代码的 ,如果不想用的话,可以右键点工程,然后在android tools 中,选择 clear lint marker 就没有这个错误了…
Lint是一个静态检查器,它围绕Android项目的正确性.安全性.性能.可用性以及可访问性进行分析.它检查的对象包括XML资源.位图.ProGuard配置文件.源文件甚至编译后的字节码. Lint包含了API版本检查.性能检查以及其他诸多特性. 其中还有一个重要的改动是Lint可以使用@SuppressLint标注忽略指定的警告. lint官方的说法是 Improving Your Code with lint,应该是帮助提升代码的 ,如果不想用的话,可以右键点工程,然后在android to…
重写view: View类一般用于绘图操作,重写它的onDraw方法,但它不可以包含其他组件,没有addView(View view)方法. 重写viewgroup: ViewGroup是一个组件容器,它可以包含任何组件,但必须重写onLayout(boolean changed,int l,int t,int r,int b)和onMesure(int widthMesureSpec,int heightMesureSpec)方法. 否则ViewGroup中添加组件是不会显示的. 自定义重写L…
安卓开发中,在低版本SDK使用高版本的API会报错.一般处理方法是换一种实现方法,或者在高版本SDK中使用高版本API,低版本SDK中使用效果可能会差点的折衷方案:后者可以用如下技巧来实现. 步骤 Step 1 在使用了高版本API的方法前面加一个 @TargetApi(API号) Step 2 在代码上用版本判断来控制不同版本使用不同的代码 eg. @TargetApi(11) public void text(){ if(Build.VERSION.SDK_INT >= 11){ // 使用…
1.指南,例子,个人感觉 首先上官网指南链接http://developer.android.com/guide/topics/ui/actionbar.html 参考了官网上的例子http://developer.android.com/samples/ActionBarCompat-Basic/index.html 初看指南感觉ActionBar 的作用类似于web 开发中常用的include heder.html ,如cnblog 页面总第一行 . 2.兼容问题: sdk 11及11以上…
compileSdkVersion(Eclipse中叫做build target) 1.在eclipse中位于项目根目录中的project.properties文件中 2.在studio中位于项目中的build.gradle中 作用:用哪个 Android SDK 版本编译你的应用 强烈推荐总是使用最新的 SDK 进行编译(默认就是最新的) 修改 compileSdkVersion 不会改变运行时的行为.当你修改了 compileSdkVersion 的时候,可能会出现新的编译警告.编译错误,…
在上一篇文章Android 原生开发.H5.React-Native开发特点,我们可以了解到三种Android开发方式的区别和优缺点.[Android开发:原生+H5]系列的文章,将主要讲解Android原生+H5开发相关,这一节主要是Android原生+H5开发时要使用WebView,要使WebView正确的显示加载H5页面和功能需要做相关的配置. AndroidManifest权限添加 请一定.务必在AndroidManifest中添加如下权限,否则是无法正常打开显示H5页面的.  这个一定…
API level API level是一个整数,它指的是我们使用的框架(Framework)的版本,也就是我们使用的sdk中的各个平台下的android.jar. 但是这个API level又和Android系统的版本有着对应关系,并且每个系统都会在内部记录它所使用的API level. https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#provisional compileSdkVersion(…
OptionsMenu是Android提供的一种菜单方式,我们知道当智能机刚兴起时,手机上都会有一个MENU(菜单键),当我们点击时,默认我们打开Android提供的默认菜单,本篇我么就一起来学一下,如何自定义Android MENU菜单. 当我们创建一个Activity后,默认实现了OnCreate方法,我们想实现Android菜单,还需要实现另外两个方法:onCreateOptionsMenu();onOptionsItemSelected(),下面我们就一起来学习一下如何使用吧: publ…
具体要求是: 服务器端得到客户端传递来的数据,并返回给客户端一条json格式的字符串 闲话不多说,直接上代码 首先是服务器端代码:建立一个web工程,导入struts2和json的jar包,并在web.xml中引入struts2 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"…
直接上例子,看如何避免crash. eg:根据给出路径,获取此路径所在分区的总空间大小. 文档说明:获取文件系统用量情况,在API level 9及其以上的系统,可直接调用File对象的相关方法,以下需自行计算 API level 9及其以上,调用 File.getTotalSpace() 即可, 但是在API level 8 以下系统File对象并不存在此方法 //如下 /** * Returns the total size in bytes of the partition contain…
今天产品来看进度,说ios状态栏可以改颜色,以前竟然也没注意过,看了美团 ,扣扣的实现, 才注意到.着手开始做.网上借鉴了点 ,各种乱,整理了下  .希望可以帮到大家 . [转载请标明出处] 前提:  效果在4.4及之上版本     5.0据说不一样  待补充 Mi3 4.4版本   完美实现 , 其他版本待测 效果图如下:              …
1.Fragment的产生与介绍 Android运行在各种各样的设备中,有小屏幕的手机,超大屏的平板甚至电视.针对屏幕尺寸的差距,很多情况下,都是先针对手机开发一套app,然后拷贝一份,修改布局以适应什么超级大屏的.难道无法做到一个app可以同时适应手机和平板吗?答案是,当然有,那就是Fragment.Fragment出现的初衷就是为了解决这样的问题. 你可以把Fragment当成Activity一个界面的一部分,甚至Activity的界面由完全不同的Fragment组成,更帅气的是Fragme…
必须在Android4.4以上版本才能设置状态栏颜色: 一.在单个Activity里面,设置状态栏的背景: 效果: 1.在Activity的布局根文件中添加属性: android:fitsSystemWindows="true" //不设置此属性,标题栏和系统状态栏会重叠 2.将第三方核心代码类 SystemBarTintManager 复制到自己的项目: /* * * Licensed under the Apache License, Version 2.0 (the "…
ActionBar 在android3.0中就加入了,但是android3.0适用于平板电脑的,在手机不能使用.android 4.0之后也开始有AndroidBar.所以说要想使用androidBar ,API级别至少是11级以上(当然如果API低于11也可以使用ActionBar,但是必须引入一个第三方的jar包,),如下图是我们在email中经常看到的,这个就是使用了ActionBar来设置的. 如何添加一个ActionBar 要在android4.0上添加actionBar很容易,只需要…
有过开发经验的程序员都知道这个效果,就是当我们第一次安装一个软件时有一个使用说明的图片切换效果,他是如何实现的呢?今天我们就一起学习一下吧,难度系数1.0,就是只要你仔细分析,都可以学会.废话不多说,下面我们开始本篇的介绍. 本篇我需要使用到ViewPager,对于ViewPager的介绍,就不再详述,网上关于ViewPager的介绍很多,大家可以自行去了解. 再进行动画效果制作之前我们先实现一个图片的切换效果. 布局文件: <RelativeLayout xmlns:android="h…
web service上传参数代码实例 这次做的项目用到webservice比较多,最开始在网上看的参考dome,发现都不行,后来发现安卓4.0以后有很大的不同,在做传参时,有些东西需要注意: 第一,命名空间:与服务器一致,命名空间后缀千万不要加“/”: 第二,方法名:与服务器一致: 第三,url:就是服务器地址不加后面的?=...: 代码如下: package com.example.web; import java.util.ArrayList; import org.ksoap2.Soap…
Immersive Mode (沉浸模式) 还是 Translucent Bars (透明状态栏) [科普]什么叫真正的“沉浸式”状态栏? 为什么在国内会有很多用户把「透明栏」(Translucent Bars)称作 「沉浸式顶栏」? MIUI 6 沉浸式状态栏调用方法 完全隐藏 System Bars 的 Immersive Mode, 在大部分时候 Translucent Bars 并不能营造沉浸式体验 当Android系统版本大于19(4.4),就可以开启透明标题栏: 可以将其封装成方法进…
关于插件,已经在各大平台上出现过很多,eclipse插件.chrome插件.3dmax插件,所有这些插件大概都为了在一个主程序中实现比较通用的功能,把业务相关或者让可以让用户自定义扩展的功能不附加在主程序中,主程序可在运行时安装和卸载.在Android如何实现插件也已经被广泛传播,实现的原理都是实现一套插件接口,把插件实现编成apk或者dex,然后在运行时使用DexClassLoader动态加载进来,不过在这个开发过程中会遇到很多的问题,所以这一片就先不介绍如何开发插件,而是先解决一下开发过程中…
自学android的这几天很辛苦,但是很满足,因为每当学到一点点知识点都会觉得很开心,觉得今天是特别有意义的,可能这个就是一种莫名的热爱吧. 下面来说说今天学习的HttpURLConnection和HttpClient的区别吧,其实这2种都能进行客户端和服务器的数据交互,只是HttpClient封装的更完全. 先看下案例吧 第一种HttpURLConnection访问服务器: 客服端代码: package com.example.demo01; import java.io.IOExceptio…
原文地址:http://blog.csdn.net/leehong2005/article/details/12567757 前段时间项目中用到了下拉刷新功能,之前在网上也找到过类似的demo,但这些demo的质量参差不齐,用户体验也不好,接口设计也不行.最张没办法,终于忍不了了,自己就写了一个下拉刷新的框架,这个框架是一个通用的框架,效果和设计感觉都还不错,现在分享给各位看官. 致谢: 1. 感谢lk6233160同学. 2. 谢谢如毛毛风提出的问题,向下滑动后,再向上滑动到头,只能再松手后才…
PS:最近忙于项目的开发,一直都没有去写博客,是时候整理整理自己在其中学到的东西了... 学习内容: 1.使用圆形菜单并实现旋转效果..     Android的圆形菜单我也是最近才接触到,由于在界面中确实是使用到了,因此就去学习了一下圆形菜单的使用,并且实现菜单的旋转效果,类似于摩天轮那样的效果,个人感觉还是蛮不错的,就是在实现的过程中有点麻烦...通过动态加载的方式,使用ViewGroup来实现了这个过程...个人感觉是一个蛮复杂的过程,最后附上源码...上面先附上效果图,其实这个图给人的感…
项目来源: https://github.com/xuwj/ToolbarDemo#userconsent# 一.V7包升级问题 折腾好久,终于解决 <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 的错误问题... 解决策略:FQ,然后在sdkManager里面下载最新的support包,一定要是最新的. 然后引入到工程中来. 结构如下: 还有一点一定要注意,appco…
参考链接:http://developer.android.com/guide/topics/connectivity/wifip2p.html 国内镜像开发文档:http://wear.techbrood.com/guide/topics/connectivity/wifip2p.html API: WifiP2pManager类提供了很多方法允许用户通过设备的Wi-Fi模块来进行交互,比如做一些如发现,连接其他对等设备的事情.下列的方法都是可以使用的: 表格1.Wi-Fi直连技术方法 方法名…
今天在Android 访问 WebService 的时候遇到,错误Caused by: android.os.NetworkOnMainThreadException,查了下原因上在4.0之后在主线程里面执行Http请求都会报这个错,大概是怕Http请求时间太长造成程序假死的情况吧,于是就用另外一个线程处理请求,用的是handler机制,源码如下: package com.example.webservicetest; import java.io.IOException; import jav…