03 2011 档案
摘要:1. 该格式图片的特点2. 制作方式一 .9.png 格式的文件的特点 与传统的png 格式图片相比, 9.png 格式图片在图片四周有一圈一个像素点组成的边沿,该边沿用于对图片的可扩展区和内容显示区进行定义。这种格式的图片在android 环境下具有自适应调节大小的能力。(1)允许开发人员定义可扩展区域,当需要延伸图片以填充比图片本身更大区域时,可扩展区的内容被延展。(2)允许开发人员定义内容显示区,用于显示文字或其他内容 如下图所示: 左侧和上方的黑线交叉的部分即可扩展区域 右侧和下方的黑线交叉的部分即内容显示区二、 .9.png 图片的制作 android sdk 的 tools 文件夹
阅读全文
摘要:Android工程的的主配置文件androidmanifest.xml的一些高级属性大多数开发者可能不了解,下面我们一起来看一看。支持的屏幕大小设置,我们可以显示的指定允许运行在:<supports-screens android:largeScreens="true" //WVGAandroid:normalScreens="true" //HVGA android:smallScreens="true" //QVGA android:resizable="true" android:anyDensity=
阅读全文
摘要:在我之前的安全与权限系列文章中对此已经有所描述,但是具体到标签的使用没有一个系统的比较。于是乎偶就想写篇文章总结下。本文只是浅析在Manifest文件中各个标签的用法,算是抛砖引玉。(终于拽了个成语,虽然到目前为止,偶连块砖头都没有收到过,但是本着予人玫瑰,手有余香的助人为乐精神,偶还是撰写了这篇文章。好,打住,开始正文。)在Android的manifest文件中有四个标签与permission有关,它们分别是<permission><permission-group> <permission-tree> 和 <uses-permission>。
阅读全文
摘要:Java反射机制是Java语言被视为准动态语言的关键性质。Java反射机制的核心就是允许在运行时通过JavaReflectionAPIs来取得已知名字的class类的相关信息,动态地生成此类,并调用其方法或修改其域(甚至是本身声明为private的域或方法)。也许你使用Java已经很长时间了,可是几乎不会用到Java反射机制。你会嗤之以鼻地告诉我,Java反射机制没啥用。或许在J2EE、J2SE等平台,Java反射机制没啥用(具体我也不了解,不多做评论),但是在Android应用开发中,该机制会带给你许多惊喜。如果熟悉Android,那么你应该知道,Google不知出于什么原因,在系统源码中一
阅读全文
摘要:迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构。迭代器通常被称为“轻量级”对象,因为创建它的代价小。 Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素。注意:iterator()方法是java.lang.Iterable接口,被Collection继承。 (2) 使用next()获得序列中的下一个元素。 (3) 使用hasNext()检查序列中是否还有元素。
阅读全文
摘要:1.概要本文主要介绍在Android平台上开发网络应用的一些常用接口。2. Android平台上可以使用的几种网络接口Android平台的网络应用绝大部分都是基于Java的编程接口的,也就是说我们开发类似的运用的时候可以有多种选择,比J2me确实好多了。2.1.标准Java接口java.net.*下面提供了访问HTTP服务的基本功能。使用这部分接口的基本操作主要包括:创建URL以及URLConnection / HttpURLConnection对象设置连接参数连接到服务器向服务器写数据从服务器读取数据 1 import java.io.InputStream; 2 3 import java
阅读全文
摘要:Android的Window类(一)Android的GUI层并不复杂。它的复杂度类似于WGUI这类基于布局和对话框的GUI,与MFC、QT等大型框架没有可比性,甚至飞漫魏永明的MiniGUI都比它复杂许多。您也许会问,这样简单的GUI如何实现浏览器呢?原因很简单,浏览器有自己一套GUI。Android浏览器(WebKit)的GUI和Android的GUI实用同一套GDI——Skia,但GUI层是完全不同的设计,分别自成体系。 Windown类,位于代码树frameworks\base\core\java\android\view\Windowjava.java文件。连同注释,这个文件总共一千多
阅读全文
摘要:1.Android中通过SQLite数据库引擎来实现结构化数据存储。SQLite是一个嵌入式数据库引擎,针对内存等资源有限的设备,提供的是一种高效的数据库引擎。2.Android提供了创建和使用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法,另外还有一个SQLiteOpenHelper工具类提供更简洁的功能。3. SQLiteOpenHelper是SQliteDatabase的一个帮助类,用来管理数据库的创建和版本更新。一般用法是定义一个类继承之,并实现两个抽象方法onCreate(SQLiteDatabase db)和onUpgrade
阅读全文
摘要:android:allowTaskReparenting是否允许activity更换从属的任务,比如从短信息任务 切换到浏览器任务。android:alwaysRetainTaskState是否保留状态不变, 比如切换回home, 再从新打开, activity处于最后的状态android:clearTaskOnLanunch比如 P 是 activity, Q 是被P 触发的 activity, 然后返回Home, 从新启动 P, 是否显示 Qandroid:configChanges当配置list发生修改时, 是否调用 onConfigurationChanged() 方法 比如 &quo
阅读全文
摘要:就像前面提到的,一个activity可以启动另一个,包括那些定义在不同应用程序中的。假设,例如,你想让用户显示一些地方的街道地图。已经有一个activity可以做这个事,所以你的activity所要做的就是将行为对象和需要的信息放在一起,并将它们传递给startActivity()。 地图查看器将显示这个地图。当用户按下后退按钮时,你的activity又重新显示在屏幕上了。对用户来说,这个地图查看器看起来就像是你的应用程序的一部分,即使它定义在另外的应用程序中并运行在那个程序的进程中。Android 通过保持所有的activity在同一个任务中来保持用户体验。简单的的说,任务就是用户所体验到的
阅读全文
摘要:1、要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent。Explicit Intent明确的指定了要启动的Acitivity,比如以下Java代码:Intent intent= new Intent(this, B.class)Implicit Intent没有明确的指定要启动哪个Activity,而是通过设置一些Intent Filter来让系统去筛选合适的Acitivity去启动。2、intent到底发给哪个activity,需要进行三个匹配,一个是action,一个是category,一个是data。理论上来说,如果i
阅读全文
摘要:最近做一个页面,仿制以下两个图,一个是横屏,一个竖屏。这是一款名字叫IMDb的手机软件,其中最上面中间是一个图;然后下来是三个tab样式的(Movies、TV、People)三个可以切换,切换是三个不同页面;下面是一个横排的图片,图片可以左右滑动显示;下面是一个list列表,此列表每一行最左边是一个图片,中间是文字,最右边是一个小箭头图标。首先解决的是最上面图片居中显示,在LinearLayout标签中加入android:gravity="center_horizontal",这个表示横向居中显示。这样的话切换横竖屏之后,图片也是在中间的。再次,解决三个(Movies、TV
阅读全文
摘要:我的widget上没有TextView问题解决了,顺便说下setXXX函数的用法,试了一下午终于试出来了比如上面的setCharSequence(int viewId, String methodName, CharSequence value);views.setString(R.id.textview01, "setText", battery + "%");其中views是RomoteViews的实例,第一个参数就是ID了,关键是第二个参数,是一个方法名字,比如这里是textView,那么textView会有很多方法,比如setBackground
阅读全文
摘要:一旦拥有了URI对象,你就可以通过调用getAuthority()、getFragment()、getHost()、getPath()、getPort()、getQuery()、getScheme()、getSchemeSpecificPart()和 getUserInfo()方法提取多种组件。你也可以通过调用isAbsolute()确定该URI是绝对的还是相对的,通过调用isOpaque()确定该URI是不透明的还是分层的。如果返回值是true意味着该URI是绝对的或不透明的,如果返回值是false意味着该URI是相对的或分层的。 列表1中的程序用命令行参数建立了一个URI对象,调用URI组
阅读全文
摘要:Android中的AppWidget与google widget和中移动的widget并不是一个概念,这里的AppWidget只是把一个进程的控件嵌入到别外一个进程的窗口里的一种方法。View在另 外一个进程里显示,但事件的处理方法还是在原来的进程里。这有点像 X Window中的嵌入式窗口。Android中的AppWidget包括以下几个部分:AppWidgetProviderAppWidgetProvider是AppWidget提供者需要实现的接口,它实际上是一个BroadcastReceiver。只不过子类要实现的不再是onReceive,而是转换成了几个新的函数:1 public vo
阅读全文
摘要:为什么要关闭组件?在用到组件时,有时候我们可能暂时性的不使用组件,但又不想把组件kill掉,比如创建了一个broadcastReceiver广播监听器,用来想监听第一次开机启动后获得系统的许多相关信息,并保存在文件中,这样以后每次开机启动就不需要再去启动该服务了,也就是说如果没有把receiver关闭掉,就算是不做数据处理,但程序却还一直在后台运行会消耗电量和内存,这时候就需要把这个receiver给关闭掉。如何关闭组件?关闭组件其实并不难,只要创建packageManager对象和ComponentName对象,并调用packageManager对象的setComponentEnabledS
阅读全文
摘要:Problem:When a notification is selected, Tabs activity is called passing the intent. I want to access the unique notificationId of the notification that was selected in Tabs. I tried intent.putExtra() to save the notificationId in the intent. But, for multiple notifications its overwriting the notif
阅读全文
摘要:前面说到intent的另外一种赋值方式:这个就是指定其component属性(调用setComponent(ComponentName)或者setClass(Context, Class)来指定)。通过这种方式的赋值的intent,其实就直接指出了activity类,这样就没有必要到androidmanfest.xml找provider,然后通过provider的gettype返回加上action来找activity了,而是直接创建activity类的实例。其实android还提供了一种创建activity的方式,那就是动态menu的方式,通过 1 public boolean onCreat
阅读全文
摘要:相对布局由于属性比较多,所以用起来有些费力,但灵活性较其他布局方法好,所以掌握好相对布局将会非常有用。先看等一个例子:1 <?xml version="1.0" encoding="utf-8"?>2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"3 android:layout_width="fill_parent"4 android:layout_height="fill_paren
阅读全文
摘要:首先我们来看一下PackageItemInfo,它是包含了一些信息的基类,它的直接子类有:ApplicationInfo、ComponentInfo、InstrumentationInfo、PermissionGroupInfo、PermissionInfo。它的间接子类有:ActivityInfo、ProviderInfo、ServiceInfo。这个类包含的信息对于所有包中项目是平等的。这些Package items是被Package manager所持有的。这个类提供了属性的非常普通的基本设置:label、icon和meta-data。这个类的意图不是被自己调用。它在这只是简单地分享被p
阅读全文
摘要:1)static Type access$iii(Outer); 是JAVA编译器自动生成的十分重要的方法(该方法的个数由你的内部类要访问的外部类的变量个数相关),目的是:用于内部类访问外部类的数据成员时使用.2)因此:JAVA编译器在生成内部类的访问外部类的数据成员时,会自动生成代码来调用这个方法.以你的代码为例:内部类Inner中的方法public int getDate() { return xx; } 生成的代码如下:(经javap 处理后)public int getDate(); LineNumberTable: line 12: 0 Code: Stack=1, Locals=1
阅读全文
摘要:Android Intent Filter-判斷intent傳遞對象 一.Intent接收原理當使用者發送一個intent出來,要求元件去執行動作,如果這個intent裡有很清楚的設定了ComponentName,那麼intent就會直接被送到指定的元件,並啟動該元件,如果沒有設定,則會由Android系統自動去判斷該把這intent送到哪個元件上啟動他。大多數在本身專案內元件可以處理的動作,intent通常都會直接指明要給哪個元件處理,如果沒有指定元件名稱的intent大多是用來啟動其他Application上的元件二.Intent Filter的作用Android系統如何判斷哪個元件可以接
阅读全文
摘要:很多情况下,一些与用户很少需要产生交互的应用程序,我们一般让它们在后台运行就行了,而且在它们运行期间我们仍然能运行其他的应用。为了处理这种后台进程,Android引入了Service的概念。Service在Android中是一种长生命周期的组件,它不实现任何用户界面。最常见的例子如:媒体播放器程序,它可以在转到后台运行的时候仍然能保持播放歌曲;或者如文件下载程序,它可以在后台执行文件的下载。让我们来看下如何创建Service:创建一个ServiceAndroid中已经定义了一个 ‘Service’类,所有其他的Service都继承于该类。Service类中定义了一系列的生命周期相关的方法,如:
阅读全文
摘要:之前遇到一个问题也有人问过的,当打开多个Activity(之前的没关闭)时,如何在当前的Activity退出程序呢?我们都知道最简单的是finish(),但这只是关闭当前的Activity,并不是退出整个程序。有人说用System.exit(1),我自己也试过用Process.killProcess(Process.myPid())。但都不理想,有时 work,有时不起作用只是关闭当前的Activity,具体什么原因没去研究过。最近在做别的东西时突然想到一个方法,不啰嗦,看代码。Java代码finalActivityManageram=(ActivityManager)getSystemSer
阅读全文
摘要:public final class Manifest { public static final class permission { /** Allows read/write access to the "properties" table in the checkin database, to change values that get uploaded. */ public static final String ACCESS_CHECKIN_PROPERTIES="android.permission.ACCESS_CHECKIN_PROPERTIE
阅读全文


浙公网安备 33010602011771号