Android开发初解(一)

安卓开发初解

下载和创建新项目的一些问题

开发工具:android studio

开发语言:java8

1)创建项目中一些常规设置和界面使用问题

在第一次创建项目的时候原来的版本都是使用“Empty Activity”模板,但是2024.1(最新版)的是使用“Empty ViewsActivity”模板来创建项目。

如果不是,就不会出现语言选择界面

创建项目之后为了便于管理,我们在项目视图选择“Android”

2)第一次加载项目的时候下载gradle文件特别慢的问题

解决方式:从国内镜像中下载压缩包放到软件默认目录

https://mirrors.cloud.tencent.com/gradle/
下载完成之后还要加载一些文件,第一次特别慢大概还是需要半个小时左右。(但是之后的项目会特别快)

3)一些下载上的问题

  1. JDK下载,并配置环境变量
  2. 下载Android的SDK,在Android Studio安装包里面会有
  3. 在Android Studio里面下载手机虚拟机,否则没有下载的目标

项目文件讲解

AndroidManifest.xml :配置清单文件,为安卓系统提供应用相关的有用信息(包括活动 [activity],服务[Service],广播…)\

相当于springboot里面的pom文件和yml文件

app内外的build.gradle文件:配置了项目运行的各种环境、项目依赖关系(本地依赖、库依赖、远程依赖)等

.gradle : 存放已经下载的gradle 版本

.idea :是android studio生成的一个文件

设计软件进入的闪屏界面

SplashActivity.java文件

package com.example.myappdesign;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.util.Log;

import androidx.appcompat.app.AppCompatActivity;

public class SplashActivity extends AppCompatActivity {

    // handle的作用:主要用于处理异步消息
    private Handler handler = new Handler(Looper.getMainLooper()){
        public void handleMessage(Message msg){

        };
    };
    // 用一个线程转到跳转到主页面的逻辑
    private Runnable runnableToMainActivity = new Runnable() {
        @Override
        public void run() {
            toMainActivity();
        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        handler.postDelayed(runnableToMainActivity,3000);
    }

    // 具体的跳转到主页面逻辑 (使用了intent对象和startActivity方法)
    private void toMainActivity(){
        // 打印日志信息
        Log.d("SplashActivity","toMainActivity()");
        Intent intent = new Intent(this,MainActivity.class);
        startActivity(intent);
        finish();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        // 防止内存泄漏
        handler.removeCallbacks(runnableToMainActivity);
    }
}
设计页面切换的步骤
  1. 设计并创建页面
  2. 设计后端跳转逻辑
    • 定义一个线程继承自runnable接口,并使其调用跳转函数
    • 设计跳转函数(创建intent对象;传入当前页面和跳转后的页面;启动跳转页面的Activity)
    • 摧毁线程(防止内存泄漏)
  3. 在manifests文件中注册对应的两个Activity并修改对应的启动Activity
注意

android项目的res目录下有许多的mipmap文件其中的后缀主要是指低分辨率、中分辨率、高分辨率等等,可以将图片放在对应的位置。

Android及界面的相关

一些布局相关术语

密度无关像素(dp):灵活尺寸的单元,可在任何屏幕上采用统一的尺寸。它们基于屏幕的物理密度。这些单位相对于 160 **dpi(每英寸点数)**屏幕确立,在该屏幕上 1 dp 大致等于 1 px

导航栏:屏幕底部显示了一个 Android 系统栏。让用户可以通过手势或点按按钮在设备中导航

可放缩像素:可缩放的像素与 dp 具有相同的功能,但适用于字体。sp 的默认值与 dp 的默认值相同。Android 系统会根据设备和用户在其 Android 设备的 设置 应用中设定的偏好设置计算要使用的实际字体大小。

状态栏:Android 系统栏显示在屏幕顶部。它包含通知图标和系统图标。

任务:用户为达成目标而进行的一系列活动。这些 activity 按照每个 activity 的打开顺序排列在一个堆栈中,称为“返回堆栈”。详细了解返回堆栈生命周期

宽高比:为了保持布局的一致性,请为图片、Surface 和屏幕尺寸等元素使用一致的宽高比。(ge.16:9,3:2,4:3,1:1,34,23)

基调:颜色的亮度或亮度。描述数字颜色值所代表的光照强度

另外对于手机设备有:刘海屏无边框边衬区边缘显示屏软件键盘系统栏界面部分

Android界面布局规范
系统栏

简介:状态栏和导航栏(统称为系统栏)会显示电池电量、时间和通知提醒等重要信息,并提供来自任何位置的直接设备互动体验。详细了解系统栏。

导航区域

简介:导航表示允许用户在应用内导航、访问重要操作或跨 Android 平台导航的不同功能

身体部位

简介:正文区域用于存放屏幕内容。正文内容由其他分组和布局参数组成。它必须在导航和系统栏区域下继续运行

使用外边距和列来实现视觉保护

外边距用于提供屏幕和内容的左侧边缘和右侧边缘的间距。较小尺寸的标准外边距值为 16 dp,但外边距应进行调整以适应较大的屏幕。应用的正文内容和操作必须在这些外边距范围内并与外边距对齐

使用容器对元素进行视觉分组(略)

详细请点击跳转

内容定位

常见的方式有重力、间距、缩放

Gravity标准

1、2、3、4分别展示了相对父容器中心位置、水平顶部+中心位置、水平底部+左对齐、水平底部+右对齐

扩缩

缩放对于适应动态内容、设备屏幕方向和屏幕尺寸至关重要。需要慎用,以防图片、表格失真

对齐方式

通过像元素一样使用不一致的间距破坏可读性,这可能会使设计显得混乱。

不破坏可读性

组件布局
Feed布局

简介:Feed 布局能够以可配置网格的形式排列等效的内容元素,以便用户快速、方便地查看大量内容。(请参阅有关在集合中使用卡片的 Material 3 准则。)Feed 可以是紧凑型显示屏上的基于列表或网格的配置,通常位于卡片或功能块中。内容可以是动态的,这意味着内容是从动态外部来源(例如 API)“馈入”的。

实现:您可以在 Compose 中使用延迟列表或延迟网格实现 Feed 布局,也可以使用 RecyclerViewCardView 在 View 中实现

eg.辅助窗格布局

相对布局

简介:

输入、内容或其他操作可以相对于彼此显示,也可以受限于父级容器。布局的自定义程度更高,但请务必遵循一致的分组、列和间距。

布局还可以使用布局类型的组合。例如,您可以将轮播界面或水平滚动条与垂直卡片配对。或者,您也可以显示包含纵向列表数据的自定义图表。

eg.身份验证的布局

全屏布局

简介:全屏布局是另一种常见布局,在沉浸模式下使用。

实现:如果您使用的是 View 而不是 Compose,则可以使用 ConstraintLayout根据同级视图和父布局之间的关系来布置视图,从而支持大型和复杂的布局。ConstraintLayout 可让您完全通过拖放操作进行构建,而无需使用布局编辑器修改 XML。详细了解如何使用布局编辑器构建界面

网格和单位

密度无关像素 (dp) 和可缩放像素 (sp) 对于构建布局和呈现能够针对各种 Android 设备屏幕密度、尺寸类别、外形规格和宽高比提供统一响应的字体至关重要

注意:

  • 如果使用基线网格,请遵循 4 和 8 的测量值。
  • 以 dp 和 sp (而不是像素)表示规范。
  • 导出所有分桶的位图/光栅图形。
  • 采用响应式思维进行设计,并考虑不同的大小类别、分辨率和宽高比。

dp的计算公式如下

dp =(以像素为单位的宽度 * 160)/屏幕密度

基准网格

Android Studio里面没找到

详情见连接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值