数据存储和界面展现

Android应用开发:数据存储和界面展现-2 Android应用开发:数据存储和界面展现 阅读详情

常见布局

相对布局(掌握)

RelativeLayout
  • 组件默认左对齐、顶部对齐
  • 设置组件在指定组件的右边

     android:layout_toRightOf="@id/tv1"
    
  • 设置在指定组件的下边

    android:layout_below="@id/tv1"
    
  • 设置右对齐父元素

    android:layout_alignParentRight="true"
    
  • 设置与指定组件右对齐

     android:layout_alignRight="@id/tv1"
    

线性布局(掌握)

LinearLayout
  • 指定各个节点的排列方向

    android:orientation="horizontal"
    
  • 设置右对齐

    android:layout_gravity="right"
    
  • 当竖直布局时,只能左右对齐和水平居中,顶部底部对齐竖直居中无效
  • 当水平布局时,只能顶部底部对齐和竖直居中
  • 使用match_parent时注意不要把其他组件顶出去
  • 线性布局非常重要的一个属性:权重

    android:layout_weight="1"
    
  • 权重:按比例分配屏幕的剩余宽度或者高度

帧布局(掌握)

FrameLayout
  • 默认组件都是左对齐和顶部对齐,每个组件相当于一个div
  • 可以设置上下左右对齐,水平竖直居中,设置方式与线性布局一样

    android:layout_gravity="bottom"
    
  • 不能相对于其他组件布局

表格布局(熟悉)

TableLayout
  • 每个节点是一行,它的每个子节点是一列
  • 表格布局中的节点可以不设置宽高,因为设置了也无效

    • 根节点的子节点宽为匹配父元素,高为包裹内容
    • 节点的子节点宽为包裹内容,高为包裹内容
    • 以上默认属性无法修改
  • 根节点中可以设置以下属性,表示让第1列拉伸填满屏幕宽度的剩余空间

    android:stretchColumns="1"
    

绝对布局(熟悉)

AbsoluteLayout
  • 直接指定组件的x、y坐标

    android:layout_x="144dp"
    android:layout_y="154dp"
    

logcat(掌握)

  • 日志信息总共分为5个等级
    • verbose
    • debug
    • info
    • warn
    • error
  • 定义过滤器方便查看
  • System.out.print输出的日志级别是info,tag是System.out
  • Android提供的日志输出api

    Log.v(TAG, "加油吧,童鞋们");
    Log.d(TAG, "加油吧,童鞋们");
    Log.i(TAG, "加油吧,童鞋们");
    Log.w(TAG, "加油吧,童鞋们");
    Log.e(TAG, "加油吧,童鞋们");
    

文件读写操作

  • Ram内存:运行内存,相当于电脑的内存
  • Rom内存:内部存储空间,相当于电脑的硬盘
  • sd卡:外部存储空间,相当于电脑的移动硬盘

在内部存储空间中读写文件(掌握)

小案例:用户输入账号密码,勾选“记住账号密码”,点击登录按钮,登录的同时持久化保存账号和密码

1. 定义布局
2. 完成按钮的点击事件
  • 弹土司提示用户登录成功

    Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();
    
3. 拿到用户输入的数据
  • 判断用户是否勾选保存账号密码

    CheckBox cb = (CheckBox) findViewById(R.id.cb);
    if(cb.isChecked()){
    
    }
    
4. 开启io流把文件写入内部存储
  • 直接开启文件输出流写数据

    //持久化保存数据
        File file = new File("data/data/com.itheima.rwinrom/info.txt");
        FileOutputStream fos = new FileOutputStream(file);
        fos.write((name + "##" + pass).getBytes());
        fos.close();
    
  • 读取数据前先检测文件是否存在

    if(file.exists())
    
  • 读取保存的数据,也是直接开文件输入流读取

    File file = new File("data/data/com.itheima.rwinrom/info.txt");
    FileInputStream fis = new FileInputStream(file);
    //把字节流转换成字符流
    BufferedReader br = new BufferedReader(new InputStreamReader(fis));
    String text = br.readLine();
    String[] s = text.split("##");
    
  • 读取到数据之后,回显至输入框

    et_name.setText(s[0]);
    et_pass.setText(s[1]);
    
  • 应用只能在自己的包名目录下创建文件,不能到别人家去创建

直接复制项目

  • 需要改动的地方:
    • 项目名字
    • 应用包名
    • R文件重新导包

使用路径api读写文件(掌握)

  • getFilesDir()得到的file对象的路径是data/data/com.itheima.rwinrom2/files
    • 存放在这个路径下的文件,只要你不删,它就一直在
  • getCacheDir()得到的file对象的路径是data/data/com.itheima.rwinrom2/cache

    • 存放在这个路径下的文件,当内存不足时,有可能被删除
  • 系统管理应用界面的清除缓存,会清除cache文件夹下的东西,清除数据,会清除整个包名目录下的东西


在外部存储读写数据

sd卡的路径(掌握)

  • 2.2之前,sd卡路径:sdcard
  • 4.3之前,sd卡路径:mnt/sdcard
  • 4.3开始,sd卡路径:storage/sdcard

  • 最简单的打开sd卡的方式

    File file = new File("sdcard/info.txt");
    
  • 写sd卡需要权限

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    
  • 读sd卡,在4.0之前不需要权限,4.0之后可以设置为需要

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    
  • 使用api获得sd卡的真实路径,部分手机品牌会更改sd卡的路径

    Environment.getExternalStorageDirectory()
    
  • 判断sd卡是否准备就绪

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

查看源代码查找获取sd卡剩余容量的代码(掌握)

  • 导入Settings项目
  • 查找“可用空间”得到

     <string name="memory_available" msgid="418542433817289474">"可用空间"</string>
    
  • 查找”memory_available”,得到

    <Preference android:key="memory_sd_avail" 
        style="?android:attr/preferenceInformationStyle" 
        android:title="@string/memory_available"
        android:summary="00"/>
    
  • 查找”memory_sd_avail”,得到

    //这个字符串就是sd卡剩余容量
    formatSize(availableBlocks * blockSize) + readOnly
    //这两个参数相乘,得到sd卡以字节为单位的剩余容量
    availableBlocks * blockSize
    
  • 存储设备会被分为若干个区块,每个区块有固定的大小

  • 区块大小 * 区块数量 等于 存储设备的总大小

Linux文件的访问权限(掌握)

  • 在Android中,每一个应用是一个独立的用户
  • drwxrwxrwx
  • 第1位:d表示文件夹,-表示文件
  • 第2-4位:rwx,表示这个文件的拥有者用户(owner)对该文件的权限
    • r:读
    • w:写
    • x:执行
  • 第5-7位:rwx,表示跟文件拥有者用户同组的用户(grouper)对该文件的权限
  • 第8-10位:rwx,表示其他用户组的用户(other)对该文件的权限

openFileOutput的四种模式(熟悉)

  • MODE_PRIVATE:-rw-rw—-
  • MODE_APPEND:-rw-rw—-
  • MODE_WORLD_WRITEABLE:-rw-rw–w-
  • MODE_WORLD_READABLE:-rw-rw-r–

SharedPreference(掌握)

用SharedPreference存储账号密码

  • 往SharedPreference里写数据

    //拿到一个SharedPreference对象
    SharedPreferences sp = getSharedPreferences("config", MODE_PRIVATE);
    //拿到编辑器
    Editor ed = sp.edit();
    //写数据
    ed.putBoolean("name", name);
    ed.commit();
    
  • 从SharedPreference里取数据

    SharedPreferences sp = getSharedPreferences("config", MODE_PRIVATE);
    //从SharedPreference里取数据
    String name = sp.getBoolean("name", "");
    

生成XML文件备份短信

  • 创建几个虚拟的短信对象,存在list中
  • 备份数据通常都是备份至sd卡

使用StringBuffer拼接字符串(了解)

  • 把整个xml文件所有节点append到sb对象里

    sb.append("<?xml version='1.0' encoding='utf-8' standalone='yes' ?>");
    //添加smss的开始节点
    sb.append("<smss>");
    .......
    
  • 把sb写到输出流中

    fos.write(sb.toString().getBytes());
    

使用XMl序列化器生成xml文件(掌握)

  • 得到xml序列化器对象

    XmlSerializer xs = Xml.newSerializer();
    
  • 给序列化器设置输出流

    File file = new File(Environment.getExternalStorageDirectory(), "backupsms.xml");
    FileOutputStream fos = new FileOutputStream(file);
    //给序列化器指定好输出流
    xs.setOutput(fos, "utf-8");
    
  • 开始生成xml文件

    xs.startDocument("utf-8", true);
    xs.startTag(null, "smss");
    ......
    
Android应用开发:数据存储和界面展现-1 1. 相对布局RelativeLayout特点:相对布局所有组件可以叠加在一起;各个组件的布局是独立的,互不影响;所有组件的默认位置都是在左上角(顶部、左部对齐) 属性 功能描述 android:layout_toRightOf 在指定控件的右边 android:layout_toLeftOf 在指定控件的左边 android:layout_above 在指定控件的上边 阅读详情

相关推荐

Android-应用开发-数据存储和界面展现(三)

测试按岗位划分 黑盒测试:测试逻辑业务 白盒测试:测试逻辑方法 按测试粒度分 方法测试:function test 单元测试:unit test 集成测试:integration test 系统测试:system test 按测试的暴力程度分 冒烟测试:smoke test 压力测试:pressure test 单元测试 junit 在清单文件中指定指令集<instrumentation andr

Android、HTML、CSS、JS、JAVA、Kotlin、PHP等技术 809

类、控件和组件,容器、站点和组件

组件          在 .NET Framework 中,组件是指实现 System.ComponentModel.IComponent 接口的一个类,或从实现 IComponent 的类中直接或间接派生的类。在编程中,“组件”这个术语通常用于可重复使用并且可以和其他对象进行交互的对象。.NET Framework 组件满足这些一般要求,另外还提供诸如控制外部资源和设计时支持等功能。控件 

2303191的专栏 1264

39文章解读与程序——EI\CSCD\北大核心《基于两阶段鲁棒优化算法的微网多电源容量配置》已提供下载资源

电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.《《《《《《《《更多资源还请持续关注本专栏》》》》》》》《《《《《《《《更多资源还请持续关注本专栏》》》》》》》论文与完整源程序_电网论文源程序的博客-优快云博客。电网论文源程序-优快云博客。

LIANG674027206的博客 1208

数据的存储和界面的展现一

1、常用布局 线性布局 * LinearLayout * 指定各个节点的排列方向   android:orientation="horizontal" * 设置右对齐   android:layout_gravity="right" * 当竖直布局时,只能左右对齐和水平居中,顶部底部对齐竖直居中无效 * 当水平布局时,只能顶部底部对齐和竖直居中

riendfly的博客 827

中科蓝讯蓝牙开发:从源码到固件的自动化构建链路解析

本文详细解析了中科蓝讯AB530X蓝牙芯片从源码到最终固件的完整自动化构建链路。通过剖析prebuild.bat、GCC编译、postbuild.bat等关键环节,阐述了资源打包、配置生成、代码编译与固件合成的全过程,并重点介绍了如何实现一键编译与自动下载,为开发者高效进行嵌入式蓝牙开发提供清晰指南。

weixin_29193259的博客 121

傻瓜式下载、安装CentOS7操作步骤

CentOS7.9下载和安装操作步骤

weixin_45608163的博客 1万+

前端页面布局

前端布局的几个概念 我今天学习了几种布局的方式,大概有五种,静态布局,自适应布局,弹性布局,流式布局,响应式布局。 静态布局 给页面元素设置固定的宽度,高度,单位用px,当窗口缩小时,会出现滚动条,针对不同分辨率的手机端,分别写入不同的样式文件。 例子: 这就是典型的静态布局,缩小时有滚动条。 自适应布局 创建多个静态布局,每个静态布局对应一个屏幕分辨率,使用@media媒体查询技术为不同分辨率定...

weixin_42137359的博客 2330

DC-DC电源芯片SY8303电路设计

SY8303高效率同步降压DC-DC转换器。这款芯片特别适用于需要较大负载电流(高达3A)的应用。SY8303在较宽的输入电压范围(4.5V至40V)内工作,能够将输入电能高效地转换为输出电能。此外,为使运行更为稳定,SY8303集成了主要的开关和同步开关,其导通电阻(RDS(ON))非常低,可以最大限度地减少导通损耗。一些特性,如短路保护、热关断以及自动恢复等,也有助于增强其可靠性和耐用性。

LuDvei的博客 9671

各页面数据的储存及获取

cookie 当前页面数据储存 当前页面数据储存 不能大于(4k) session(会话) 各个页面之间数据的存储 关闭页面数据才会删除 永久存储 localStorage 可以同时更改不同页面的数据 sessionStorage的方法 localStorage都可以用 各个页面之间数据的存储 sessionStorage 设置数据 (储存数据) 以key , value 的形式储存 key : 名字(自己命名) value : 需要储存的数据 sessionStorage.setItem("c

weixin_49702294的博客 971

【数据结构】面试题整理 共36题

链表是一种常见的数据结构,它由一系列节点组成,每个节点包含数据和一个指向下一个节点的指针。与数组不同,链表中的元素在内存中不必是连续存储的,这使得链表在插入和删除操作时非常高效。单向链表(Singly Linked List):每个节点只包含一个指向下一个节点的指针。双向链表(Doubly Linked List):每个节点包含两个指针,一个指向下一个节点,一个指向前一个节点。循环链表(Circular Linked List):链表的最后一个节点指向第一个节点,形成一个环。

weixin_44329069的博客 7194

华为OD机试真题 新系统【小花获胜的奶茶】

华为OD机试真题 新系统【小花获胜的奶茶】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题 【小花获胜的奶茶】多语言题解。

qq_45776114的博客 382

数据存储和界面展现总结

测试 黑盒测试 测试逻辑业务 白盒测试测试逻辑方法 根据测试粒度方法测试:function test 单元测试:unit test 集成测试:integration test 系统测试:system test 根据测试暴力程度冒烟测试:smoke test 压力测试:pressure test 单元测试junit 定义一个类继承AndroidTestCase,在类中定义方法,即可测试该方法 在指定

a172131234的博客 405

30.Labview如何读懂别人程序、修改程序?

之前写过一次教大家的文章,这次教大家如何学习别人的程序,和如何搭建一套适合自己的程序框架。这里事先说明一下:要想搭好程序框架,一定要先把自己的系统,逻辑是什么!这非常重要,是决定你程序的关键因素。废话不多扯,直接说重点。

关注我,更多技术问题欢迎私聊~ 2446

数据存储和界面展现之二

测试 黑盒测试 测试逻辑业务 白盒测试测试逻辑方法 根据测试粒度方法测试:function test 单元测试:unit test 集成测试:integration test 系统测试:system test 根据测试暴力程度冒烟测试:smoke test 压力测试:pressure test 单元测试junit 定义一个类继承AndroidTestCase,在类中定义方法,即可测试该方法 在指定

淮左明都的博客 344

piamon实战-- 如何使用 Paimon 的 Java API 实现数据的点查

点查(Point Lookup)是指通过 ​​唯一键(Primary Key)​​ 快速定位并返回单条或少量数据的查询模式。例如:根据用户 ID 查询用户信息、根据订单号查询订单详情等。点查的核心诉求是 ​​低延迟​​ 和 ​​高吞吐​​,适用于实时风控、在线分析等场景。​​定义主键表结构​​,优化数据分布。​​构建过滤条件​​,使用指定查询键。​​执行查询并处理结果​​,结合流式更新实现实时查询。

阿华田的博客 530

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

android界面数据存储,Android应用开发基础之数据存储和界面展现(二)

Android应用开发基础之数据存储和界面展现(二)常见布局相对布局RelativeLayout组件默认左对齐、顶部对齐设置组件在指定组件的右边android:layout_toRightOf=@id/tv1设置在指定组件的下边android:layout_below=@id/tv1设置右对齐父元素android:layout_alignParentRight=true设置与指定组件右对齐andr...

weixin_30051655的博客 251

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Android数据存储和界面展现

常见布局相对布局RelativeLayout 组件默认左对齐、顶部对齐 设置组件在指定组件的右边 android:layout_toRightOf="@id/tv1"设置在指定组件的下边android:layout_below="@id/tv1"设置右对齐父元素android:layout_alignParentRight="true"设置与指定组件右对齐 android:layout_alignR

C. 1358

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Android基础——02数据存储和界面展现

测试介绍好的软件不是写出来, 测出来的.1、根据测试的时候 是否有源代码:白盒测试: 写测试代码 测试源代码里面的业务方法 黑盒测试: 不知道源代码, 测试应用程序的业务逻辑. 2、根据测试的粒度方法测试 function test单元测试 unit test junit测试框架集成测试 integration test系统测试 system test3、根据测试的暴力程度冒烟测试

12345~ 755

Android应用开发基础之数据存储和界面展现(二)

常见布局 相对布局 RelativeLayout 组件默认左对齐、顶部对齐 设置组件在指定组件的右边 android:layout_toRightOf="@id/tv1" 设置在指定组件的下边 android:layout_below="@id/tv1" 设置右对齐父元素 android:layout_alignParentRight="true" 设置

love android 927

Android应用开发基础之数据存储和界面展现(一)

Android项目的目录结构 Activity:应用被打开时显示的界面src:项目代码R.java:项目中所有资源文件的资源idAndroid.jar:Android的jar包,导入此包方可使用Android的apilibs:导入第三方jar包assets:存放资源文件,比方说mp3、视频文件bin:存放编译打包后的文件res:存放资源文件,存放在此文件夹下的所有资源文件都会生成资源iddr

love android 1042

Android应用开发-数据存储和界面展现

测试 黑盒测试 测试逻辑业务 白盒测试 测试逻辑方法 根据测试粒度 方法测试:function test单元测试:unit test集成测试:integration test系统测试:system test 根据测试暴力程度 冒烟测试:smoke test压力测试:pressure test 单元测试junit 定义一个类继承

liuzhupeng的专栏 337

android应用的数据存储,Android应用开发-数据存储和界面展现(一)

常见布局相对布局(RelativeLayout)相对布局下控件默认位置都是左上角(左对齐、顶部对齐父元素),控件之间可以重叠可以相对于父元素上下左右对齐,相对于父元素水平居中、竖直居中、水平竖直同时居中android:layout_alignParentRight="true" android:layout_centerHorizontal="true"可以相对于其他控件上下左右对齐andr...

weixin_39728909的博客 220

Android基础笔记(三)-数据存储和界面展现

SQLite Android下数据库的创建 SQLiteDatabase简介 Android下数据库的第一种增删改查方式 Android下数据库的第二种增删改查方式 Android下数据库的事务SQLiteSQLite,是一款轻量级的数据库,是遵循ACID(原子性、一致性、隔离性、持久性)的关联式数据库管理系统,多用于嵌入式开发中。Android平台中嵌入了一个关系型数据库SQLite,和其他数据库

biezhihua的专栏 1751

数据存储和界面展现(66期第二天)

常见布局相对布局(掌握)RelativeLayout 组件默认左对齐、顶部对齐 设置组件在指定组件的右边 android:layout_toRightOf="@id/tv1"设置在指定组件的下边android:layout_below="@id/tv1"设置右对齐父元素android:layout_alignParentRight="true"设置与指定组件右对齐 android:layout_al

心猿码意 539
上一篇: 随堂笔记
下一篇: 软件也要拼脸蛋,UI开发的点点滴滴
guotao967
博客等级 码龄11年 1粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值