Android进阶知识点(隐式Intent,Assets,样式和主题)

来源:互联网 发布:淘宝页头尺寸 编辑:程序博客网 时间:2024/05/29 13:10

隐式Intent

在隐式Intent中,我们只需要描述要完成的任务,操作系统就会找到合适的应用,并在其中启动相应的Activity。可以使用隐式Intent来利用其它应用完成常见任务,例如打开手机通讯录发短信。使用隐式Intent我们只需要告诉操作系统我们想要做什么,操作系统就回去启动能够胜任工作的任务的Activity


隐式Intent的组成:1)要执行的操作:通常以Intent中的常量来表示。例如,要访问查看URL,可以使用Intent.ACTION_VIEW

(2)要访问数据的位置(URLURIContentProvider中某条记录的某个内容content URI)。

(3)操作涉及的类型

(4)可选类别,DEFAULT类别必须在intent过滤器中明确地设置。

可以使用include在一个布局中引入另外的布局,引入视图时会带入它在原始布局文件中的所有属性。

Context类提供了基本的文件和目录处理方法,既可以对内部也可对外部存储进行处理。

外部存储:主外部存储设备和其他各类存储介质。

读写外部存储要获得权限。

Android自动启动activity的拍照。

mPhotoButton=(ImageButton)v.findViewById(R.id.crime_camera);
final Intent captureImage=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
boolean canTakePhoto =mPhotoFile!=null && captureImage.resolveActivity(packageManager)!=null;
mPhotoButton.setEnabled(canTakePhoto);
if(canTakePhoto){
    Uri uri=Uri.fromFile(mPhotoFile);
    captureImage.putExtra(MediaStore.EXTRA_OUTPUT,uri);

}
mPhotoButton.setOnClickListener(new View.OnClickListener(){
    @Override
    
public void onClick(View v) {
        startActivityForResult(captureImage,REQUEST_PHOTO);
    }
});

加载照片到大小合适的Bitmap对象中。要从文件中生成Bitmapd对象,我们需要BitmapFactory类:Bitmap bitmap=BitmapFactory.decodeFile(mPhotoFile.getPath());

Bitmap是个简单对象,它只存储实际像素数据。

 

Assets 一种资源打包方式,可以被看做是随应用打包的微型文件系统,支持任意层次的文件目录结构。

resouurces资源可以存储声音文件,但存储较多时(声音文件),Android资源系统一个个去处理,效率会很低。assets目录中的所有文件都会随应用打包。assets导入后,我们还要在应用中进行定位、管理记录以及播放。访问assets需要用到AssetsManager类(管理的都是同一套assets资源),可以从Context中获取它。要获取assets中的资源清单,可以使用liststring)(能够列出指定目录中所有文件名)方法。

 

Android有两大资源系统:resourcesassetsresources资源系统设计有良好的检索系机制,但它无法应付图形和声音这样的大文件。这些大资源实际是保存在assets系统里的。在后台Android就是使用openNonAsset方法来打开这些资源(永远不会用到)。

 

如何播放.wav音频文件,SoundPool能加载一批声音资源到内存中,并支持同时播放多个音频文件。SoundPool.load(AssetsFileDescriptor,int)加载带播放的文件;SoundPool.play(int,float,float,int,int,float)方法播放音频;SoundPool.release()方法释放音频。

 

Java的世界里,要保存对象,要么将其保存在Bundle中,要么实现Serializable接口或者Parcelable接口。可保存:不可保存性有向外传递的倾向,如果一个对象重度依赖另一个不可保存的对象,那么这个对象也可能无法保存。

fragmentretainInstance()方法可以确保实例一直存在。Fragment进入保留状态必须满足两个条件:1)已调用了fragmentsetRetainInstanceture)方法;(2)因设备配置改变,托管activity正在被销毁。使用这种机制会使程序变得复杂,无法确保数据不会丢失(操作系统回收内存时)。

 

 

使用样式和主题,可以定制出用户界面风格。颜色资源:res/valuescolor.xml中定义。

样式:res/values/style.xml中定义,能够用于视图组件的属性,直接style来引用。样式继承,一个样式能继承并覆盖其他样式的属性。

主题:实际就是一种样式,主题可用于整个应用。

 

XML drawable Android的世界里,凡是绘制在屏幕上的东西都可以叫做drawable,比如抽象图形,Drawable类的子类,位图图像等。XML drawable和屏幕像素密度无关。



1 0
原创粉丝点击