前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Android】使用Android开发应用过程中遇到ViewGroup的简单效以及aw和assets文件夹下的文件(Http协议的底层工作)

【Android】使用Android开发应用过程中遇到ViewGroup的简单效以及aw和assets文件夹下的文件(Http协议的底层工作)

作者头像
上进小菜猪
发布2022-12-22 08:26:09
6280
发布2022-12-22 08:26:09
举报

使用ViewGroup

在Android APP中,所有用户界面元素都由View和ViewGroup对象组成。视图是用户在屏幕上绘制时可以与之交互的对象。ViewGroup是用于存储其他View(和ViewGroup)对象的布局容器!Android为我们提供了View和ViewGroup子类的集合,其中提供了一些常见的输入控件(如按钮和文本字段)和各种布局模式(如线性或相对布局)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="fill_parent" 
              android:layout_height="fill_parent"
              android:orientation="vertical" >
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="I am a TextView" />
    <Button android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="I am a Button" />
</LinearLayout>

要定义布局,可以在代码中实例化View对象并开始构建树。然而,定义布局的最简单和最有效的方法是使用XML文件,这更符合人们的阅读习惯。XML与HTML相似,因为它使用XML元素的名称来表示视图。因此,元素将在您的界面中创建一个TextView控件,而将为LinearLayout创建一个容器!例如,具有文本视图和按钮的简单垂直布局

简单效果

要实现第一个布局的1:1效果,只需将两个LinearLayouts的权重分别更改为1和1。其用法可以概括为:按比例划分水平方向:将涉及的View的android:width属性设置为0dp,然后设置androidweight属性以设置比例;类似地,在垂直方向上,只需将android:height设置为0dp,然后设置权重属性!您可以编写自己的垂直等比除法来体验简单的用法!

<View  
    android:layout_width="match_parent"  
    android:layout_height="1px"  
    android:background="#000000" />  

② 权重属性的详细信息: 当然,如果我们不将上述设置方法应用于0dp,我们可以直接使用wrap _ Content和match _在parent的情况下,需要解析weight属性。有两种情况:wrap _ Content和match _ parent此外,这取决于LinearLayout的方向是水平还是垂直,这决定了哪个方向是等分的

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    
    xmlns:tools="http://schemas.android.com/tools"    
    android:id="@+id/LinearLayout1"    
    android:layout_width="match_parent"    
    android:layout_height="match_parent"    
    android:orientation="horizontal">   
        
    <LinearLayout    
        android:layout_width="0dp"    
        android:layout_height="fill_parent"    
        android:background="#ADFF2F"     
        android:layout_weight="1"/>    
       
        
    <LinearLayout    
        android:layout_width="0dp"    
        android:layout_height="fill_parent"    
        android:background="#DA70D6"     
        android:layout_weight="2"/>    
        
</LinearLayout>  
在这里插入图片描述
在这里插入图片描述

raw和assets文件夹下的文件

我相信你对这两个文件夹并不陌生。如果我们不想将文件编译成二进制文件,我们可以将文件放在这两个目录中。两者之间的差异如下: Res/raw:该文件将映射到R.java文件,该文件可以通过资源ID直接访问,并且不能具有目录结构,即不能创建文件夹 资产:它不会映射到R.java文件。可以通过资产管理器访问。它可以有一个目录结构,也就是说,它可以自己创建文件夹

AssetManager am =  getAssets();  
InputStream is = am.open("filename");

简单的加密处理流程 步骤1。用户注册帐户和密码。验证帐户和密码后(帐户是否重复、密码位数>6等),即帐户和密码有效。注册成功后,我们向服务器提交帐户和本地加密的密码! 步骤2。服务器会将用户提交的帐户和加密密码保存到服务器的数据库中,也就是说,服务器不会保存我们的明文密码(原始)! 步骤3。回到客户端,如果注册或登录成功,您需要将帐户密码保存到SP,并且保存的密码还需要经过加密过程!即明文密码–>再次加密并保存!如果不保存,则每次请求明文密码时,都必须经过主进程,然后向服务器请求加密密码! 步骤4。服务器验证帐户和加密密码。如果成功,它将为客户端分配会话ID,随后的客户端可以通过此会话访问服务器提供的相关服务!

在这里插入图片描述
在这里插入图片描述

Http协议的底层工作

我们首先需要知道两个名词: SYN(同步):TCP/IP建立连接时使用的握手信号 ACK(确认):一个确认字符,用于确认发送的数据已被正确接受 然后是TCP/IP三重握手的概念: 客户端向服务器发送syn包(syn=j)并进入syn_SEND状态,然后等待服务器确认 服务器接收SYN包,确认客户端的SYN(ACK=j+1),同时发送一个SYN包(SYN=k),即SYN+ACK包,服务器进入SYN_RECV状态 客户端接收SYN+ACK分组并向服务器发送ACK(ACK=k+1)确认分组。发送后,客户端和服务器进入建立状态,完成三次握手,然后都开始传输数据

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"
    android:padding="5dp"
    android:background="#6BBA79">

    <ImageView
        android:id="@+id/img_icon"
        android:layout_width="48dp"
        android:layout_height="48dp"
        android:src="@mipmap/iv_lol_icon1"
        android:focusable="false"/>

    <TextView
        android:id="@+id/tv_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:layout_marginTop="15dp"
        android:focusable="false"
        android:text="提莫"
        android:textSize="18sp" />

</LinearLayout>

用户单击浏览器上的url(超链接),web浏览器与web服务器建立连接 建立连接后,客户端向服务器发送请求。请求的格式为:统一资源标识符(URL)+协议版本号(通常为1.1)+MIME信息(多个标头)+空行 收到请求后,服务器将以以下格式给出相应的返回信息:协议版本号+状态行(处理结果)+多个信息头+空白行+实体内容(如返回的HTML) 客户端接收服务器返回的信息,通过浏览器显示,然后与服务器断开连接;当然,如果在一个步骤中发生错误,错误消息将返回给客户端并显示,例如经典的404错误!

   public MyBaseExpandableListAdapter(ArrayList<Group> gData,ArrayList<ArrayList<Item>> iData, Context mContext) {
        this.gData = gData;
        this.iData = iData;
        this.mContext = mContext;
    }

    @Override
    public int getGroupCount() {
        return gData.size();
    }

    @Override
    public int getChildrenCount(int groupPosition) {
        return iData.get(groupPosition).size();
    }

    @Override
    public Group getGroup(int groupPosition) {
        return gData.get(groupPosition);
    }

    @Override
    public Item getChild(int groupPosition, int childPosition) {
        return iData.get(groupPosition).get(childPosition);
    }

    @Override
    public long getGroupId(int groupPosition) {
        return groupPosition;
    }

    @Override
    public long getChildId(int groupPosition, int childPosition) {
        return childPosition;
    }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用ViewGroup
  • 简单效果
  • raw和assets文件夹下的文件
  • Http协议的底层工作
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档