您的位置:首页 > 其它

常用布局

2015-08-24 21:07 225 查看

线性布局

有一个布局方向,水平或者竖直

在竖直布局下,左对齐、右对齐、水平居中生效

在水平布局下,顶部对齐、底部对齐、竖直居中生效

权重weight:按比例分配屏幕的剩余宽度或者高度(推荐在使用权重的时候使用0dp)

引用安卓系统的颜色以深灰色为例:background=”@android:color/dark_gray”

线性布局加相对布局是开发中用的最多的一种布局

相对布局

相对布局没有权重没有方向。

组件默认位置都是左上角,组件之间可以重叠

可以相对于父元素上下左右对齐,相对于父元素,水平居中、竖直居中、水平竖直同时居中

可以相对于其他组件上下左右对齐

可以布局于其他组件的上方、下方、左边、右边

帧布局

可以设置上下左右对齐,水平竖直居中,设置方式与线性布局一样

组件默认位置都是左上角,组件之间可以重叠

表格布局

表格布局不用定义宽高。

-tablerow表示一行,该子节点的每一个子节点都表示一列

TableLayout的一级子节点默认宽都是匹配父元素

TableRow的子节点默认宽高都是包裹内容

LogCat

等级

verbose:冗余,最低等级

debug:调试

info:正常等级的信息

warn:警告

error:错误

Android中的存储空间

内部存储空间

RAM内存:运行内存,相当于电脑的内存

ROM内存:存储内存,相当于电脑的硬盘

文件操作:getFileDir()获取文件的路径。具体是data/data/包名/files

File file=new File(getFileDir(),”info.txt”)将会在data/data/包名/files文件夹中创建一个info.txt文件

getCacheDir()获得文件路径,具体是data/data/包名/cache

getCacheDir()和getFileDir()区别:当内存不足的时候cache文件夹中的文件会被删除。重要的信息不要保存在cache文件夹中。

外部存储空间(外部存储是可有可无的)

SD卡:相当于电脑的移动硬盘

2.2之前,sd卡路径:sdcard

4.3之前:sd卡路径:mnt/sdcard

4.3开始:sd卡路径:storage/sdcard

为了兼容低版本,所以在File Explorer中都保留了低版本的快捷路径

向sdcard写文件是需要权限的,但是只会报出警告。

写的权限是:

android.permission.WRITE_EXTERNAL_STORAGE

4.0之前读取sdcard是不需要权限的.但是之后就需要权限了

android.permission.READ_EXTERNAL_STORAGE

重点内容:返回一个File对象,其路径是sd卡的真实路径。

Environment.getExternalStorageDirectory

重点内容:

//MEDIA_UNKNOW:不能识别sd卡

//MEDIA_REMOVED:没有sd卡

//MEDIA_UNMOUNTED:sd卡存在但是没有挂载

//MEDIA_CHECKING:sd卡正在准备

//MEDIA_MOUNTED:sd卡已经挂载,可用

判断sd卡是否存在:

if(Environment.getExternalStorageState.equals(Environment.MEDIA_MOUNTED))

如何获取sd卡剩余容量:

所有存储设备都会被划分成若干个区块,每个区块有固定的大小,

存储设备的总大小=区块大小*区块数量。

windows系统中区块的大小默认是4K.

File path=Environment.getExternalStorageDirectory();
StatFs stat=new StatFs(path.getPath());
long blockSize;
//long totalBlocks;
long availableBlocks;
if(Build.VERSION.SDK_INT>Bulid.VERSION+CODES.JELLY_BEAN_MR2)
{
blockSize=stat.getBlockSizeLong();
totalBlocks=stat.getBlockCountLong();
availableBlocks=stat.getAvailableBlocksLong();
}else
{
blockSize=stat.getBlockSize();
totalBlocks=stat.getBlockCount();
availableBlocks=stat.getAvailableBlocks();
}

TextView tv=(TextView )findViewById(R.id.tv);
tv.setText(formatSize(availableBlocks*blockSize));


private String formatSize(long size)
{
return Formatter.formatFileSize(this,size);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: