常用布局

线性布局

  • 有一个布局方向,水平或者竖直
  • 在竖直布局下,左对齐、右对齐、水平居中生效
  • 在水平布局下,顶部对齐、底部对齐、竖直居中生效
  • 权重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);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值