AndroidManifest中属性说明

2014-06-04 14:03:00 by suphy

AndroidManifest 中original-package标签


@(示例笔记本)[AndroidManifest|original-package|package]

AndroidManifest.xml中:

  • 标签中package属性用于设置应用程序的进程名,即在运行时使用ddms查看到的进程名。
  • 标签用以设置应用源码包名,即Java文件所在的源码程序包层次,android工程中真实的源代码层次结构。

package属性若与android:name值相同,配置组建时android:name属性值 可以使用".ClassName"形式。 使用标签后,在中的android:name属性需要写完整的包名,".ClassName"形式无效。

注意:标签中package属性只是告诉系统应用的进程名;因此进程名(Manifest中package属性的值)与的值可以不一样。

需要注意:

<manifest
    xmlns:android="http://schemas.android.com ...
read more

如何让Android应用启动的体验更顺畅

2014-05-29 20:34:00 by suphy

如何让Android应用启动的体验更顺畅

Android 中应用启动的时候,首先会加载一个预览窗口(由Activity 的主题决定的)用于对用户操作的即时响应。一旦真正的内容加载完毕,预览窗口将淡出,内容窗口相应淡入。

Android应用window预览效果是打开的,可以通过android:windowDisablePreview = true来禁止window预览效果。

为了避免出现白色或黑色界面,可以通过修改activity的theme使启动过程更流畅。

The perfect preview window

如果你的Activity没有ActionBar,那就在Activity 的主题里面禁用掉ActionBar,这样在预览窗口中就不会出现ActionBar了。

另外,因为默认的预览窗口是纯黑色的,如果你的Activity 背景是其他颜色,那么为了启动连贯顺畅,可以通过覆写window的背景颜色实现。如下:

  1. 自定义主题,修改windowBackground

    <style name="Theme.Calculator" parent=“@android:style/Theme.Holo.NoActionBar">
        <item name="android:windowBackground”>@android ...
read more

ListView焦点问题

2014-05-29 20:03:00 by suphy

android:descendantFocusability 焦点 父控件与子控件焦点

ListView item包含ImageButton、Button、CheckBox等控件时无法获取焦点,造成点击item无响应。

可以使用android:descendantFocusability="blocksDescendants" 来解决

该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间的关系。

属性的值有三种:

  • beforeDescendants:viewgroup会优先其子类控件而获取到焦点
  • afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
  • blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

通常我们用到的是第三种,即在Item布局的根布局加上android:descendantFocusability=”blocksDescendants”的属性就好了

read more

View及TextView属性说明

2014-05-23 09:37:00 by suphy

View属性说明

android:alpha
关联方法: setAlpha(float)
属性说明: 视图透明度,值在0-1之间。0为完全透明,1为完全不透明。

android:background
关联方法: setBackgroundResource(int)
属性说明: 视图背景

android:clickable
关联方法: setClickable(boolean)
属性说明: 视图是否可点击

android:contentDescription
关联方法: setContentDescription(CharSequence)
属性说明: 设置View的备注说明,作为一种辅助功能提供,为一些没有文字描述的View提供说明

android:drawingCacheQuality 关联方法: setDrawingCacheQuality(int)
属性说明: "设置绘图时半透明质量。有可以取以下3个值 auto——默认,由框架决定 high——高质量,使用较高的颜色深度,消耗更多的内存 low ...

read more

Android关于高效显示图片的问题

2014-03-17 17:37:00 by suphy

Android关于高效显示图片的问题

Bitmap的immutable和mutable

Bitmap可以理解为Android里的画布,Canvas是画笔,Paint是画笔属性的设置,View是画图的地方;

图像(Image)有immutable(不可变的)和mutable(可变的)之分,创建自图形的Bitmap是immutable,而给定宽高以及其他一些参数创建的Bitmap是mutable.

//Immutable bitmap
Bitmap temp = BitmapFactory.decodeFile("/sdcard/xxx.jpg");
Bitmap immutable = Bitmap.createBitmap(temp);

//mutable bitmap
Bitmap mutalbe = Bitmap.createBitmap(240, 320, Bitmap.Config.RGB_565);

在使用Canvas canvas = new Canvas(bitmap); 时,传入的参数只能是mutable的bitmap.

BitmapFactory.Options ...

read more

Android.mk 文件的编写

2014-03-16 18:37:00 by suphy

Android.mk 文件的编写

Android.mk 文件通常以以下两行代码作为开头:

LOCAL_PATH := $(call my-dir) 
 include $(CLEAR_VARS) 

这两行代码的作用是:

  1. 设置当前模块的编译路径为当前文件夹路径。
  2. 清理(可能由其他模块设置过的)编译环境中用到的变量。

为了方便模块的编译,Build 系统设置了很多的编译环境变量。要编译一个模块,只要在编译之前根据需要设置这些变量然后执行编译即可。它们包括:

  • LOCAL_SRC_FILES:当前模块包含的所有源代码文件。
  • LOCAL_MODULE:当前模块的名称,这个名称应当是唯一的,模块间的依赖关系就是通过这个名称来引用的。
  • LOCAL_C_INCLUDES:C 或 C++ 语言需要的头文件的路径。
  • LOCAL_STATIC_LIBRARIES:当前模块在静态链接时需要的库的名称。
  • LOCAL_SHARED_LIBRARIES:当前模块在运行时依赖的动态库的名称。
  • LOCAL_CFLAGS:提供给 C/C++ 编译器的额外编译参数。
  • LOCAL_JAVA_LIBRARIES:当前模块依赖的 Java 共享库。
  • LOCAL_STATIC_JAVA_LIBRARIES:当前模块依赖的 Java ...
read more