欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android入门到精通|安卓/Android开发零基础系列Ⅱ【职坐标】-学习笔记(1)-- 常用控件及资源介绍

程序员文章站 2022-08-17 12:57:47
前言为了巩固Android基础知识,回顾一下学习内容,才有此学习笔记。IDE:Androdi Studio 4第一章第一节 如何在线学习开发?职坐标机构介绍,广而告之。第二节 文本控件Android常用控件 ★✩✩标签(Text View)按钮(Button)图像(ImageView、ImageButton)文本框(EditView)复选框(CheckBox)单选框(Radio Button)创建项目修改项目根目录的 build.gradle,......

前言

为了巩固Android基础知识,回顾一下学习内容,才有此学习笔记。

IDE

Androdi Studio 4 + Genymotion

创建项目

修改项目的 build.gradle,添加国内镜像

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
        maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

Build一下,需要很长时间,下载依赖的工具和包。运行一下新建的项目。OK

主要目录

app 主项目目录

manifests

java

代码文件

res

存放项目用到的各种资源文件:如布局文件(layout)、文本(values\string.xml)、颜色、样式、图像(drawable)等。

资源文件添加到项目中会自动生成对应的ID,代码中访问资源都是通过这个资源Id查找。

如控件Id R.id.*;字符串id R.string.*;图片Id R.drawable.*等

资源文件名必须都是小写字符。

Gradle Scripts

项目自动化构建工具代码

Android入门到精通|安卓/Android开发零基础系列Ⅱ【职坐标】-学习笔记(1)-- 常用控件及资源介绍

第一章

第一节 如何在线学习开发?

职坐标机构介绍,广而告之。

第二节 文本控件

Android常用控件    ★✩✩

  • 标签(Text View)
  • 按钮(Button)
  • 图像(ImageView、ImageButton)
  • 文本框(EditView)
  • 复选框(CheckBox)
  • 单选框(Radio Button)

Text View(标签)★★★

  • 标签用于显示信息,不能为用户手动修改。
  • 在android中,TextView为标签控件。
  • 设置控件属性可通过修改XML文件实现。也可通过设计器设置属性。
  • Id 设置控件的Id,在代码中调用控件时必须设置。
  • Text 设置控件显示的文本。
  • color 设置控件文本的颜色。android颜色表示方式:#RGB、#RRGGBB、#ARGB、#AARRGGBB

Button(按钮)★★★

  • 继承于TextView,具有TextView所有属性
  • 用于响应用户点击操作
  • 相应点击事件可在代码里注册View.OnClickListener监听器
  • 三种方式实现响应单击事件,内部类实现、匿名类、xml文件设置方法名、也可以在Activity继承OnClickListener接口实现。

EditView(文本编辑框)★★★

  • 继承于TextView,具有TextView所有属性
  • 用户接收用户输入的内容
  • hint属性用于用户输入提示,如果文本为空则显示。
  • inputType属性用户限制用户输入。

第三节 图像控件 ★★★

ImageView(图像显示)★★★

  • 用于显示图片
  • 项目中添加图片,需要复制到 Drawable目录中,目录后缀名对应运行的API版本。
  • src属性设置图片源。
  • 代码中更改图片 setImageResource(R.drawable.xxx)

ImageButtton(图像显示,响应用户点击)★★★

  • 图像显示,响应用户点击
  • 继承自ImageView

第四节 选项控件 ★★★

单选按钮(ReadioGroup&RadioButton)

  • RadioButton继承自CompoundButton
  • isCheck() :确定是否被选中。
  • setChecked():强制选中或取消选中。
  • XML中设置checked属性的默认值。XML设置默认值,不能响应Check侦听。
  • 状态监听器,实现OnCheckedChangeListener接口,并实现回调方法onCheckedChanged()。

多选按钮(CheckButton)

  • CheckButton继承自CompoundButton
  • isCheck() :确定是否被选中。
  • setChecked():强制选中或取消选中。
  • XML中设置checked属性的默认值。XML设置默认值,不能响应Check侦听。
  • 状态监听器,实现OnCheckedChangeListener接口,并实现回调方法onCheckedChanged()。

第五节 资源的使用

  • 字符串资源
  • 颜色资源
  • 图像资源
  • 尺寸资源

字符串资源

  • 有助于国际化和本地化
  • 使用纯文本字符串在 res/values目录中的XML文件中定义(默认文件名 string.xml),不同语言版本使用不同的 目录 values-【区域代码】。

res/values/string.xml

<resources>
    <string name="app_name">Demo</string>
    <string name="btn_download">Download</string>
    <string name="btn_downloading">Downloading...</string>
    <string name="tip_downloading">Downloading...</string>
    <string name="tip_download_stop">Finish</string>
</resources>

res/values-zh/string.xml

<resources>
    <string name="app_name">功能演示</string>
    <string name="btn_download">下载</string>
    <string name="btn_downloading">正在下载...</string>
    <string name="tip_downloading">正在下载...</string>
    <string name="tip_download_stop">下载完成</string>
</resources>

可以从布局文件中引用此字符串,代码中使用 Id 引用此字符串。

//布局文件中引用
android:textColor="@string/btn_downloading"    
//代码中引用
Resources res = getResources();                      
String str = res.getString(R.string.btn_downloading)

颜色资源

  • Android中的颜色是十六进制RGB值。
  • 提供的样式有4种:#RGB、#ARGB、#RRGGBB,#AARRGGBB
  • 颜色资源可在 res/values 目录中的一个XML文件中定义。
<resources>
    <color name="colorPrimary">#6200EE</color>
    <color name="colorPrimaryDark">#3700B3</color>
    <color name="colorAccent">#03DAC5</color>
    <color name="white">#FFFFFF</color>
</resources>

图像资源

  • Android支持PNG,JPEG和GIF格式的图片。
  • 官方建议不要使用GIF格式,PNG是首选格式。
  • 使用图像就是将图像文件放入 res/drawble 目录中,作为资源引用。
  • 不同分辨率的图片资源,放在drawble-xxx不同后缀的目录中。
  • 在布局文件中,图像使用 @drawble/... 格式引用。

尺寸资源

Android设备有许多不同形状及大小,屏幕尺寸不同与密度各不相同。

屏幕级别 屏幕密度 比率(相对) 物理大小(英寸) 像素大小 通常分辨率
mdpi 160 4:1 1 160 320*480
hdpi 240 6:1.5 1 240 480*800
xhdpi 320 8:2 1 320 720*1280
xxhdpi 480 12:3 1 480 1080*1800

Android支持单位

单位表示 单位名称 单位说明
px 像素 屏幕上的真实像素表示
in 英尺 基于屏幕的物理尺寸
mm 毫米 基于屏幕的物理尺寸
pt 英寸的1/72
dp 和密度无关的像素 相对屏幕物理密度的抽象单位
sp 和精度无关的像素 和dp类似

使用纯文本字符串在 res/values目录中的XML文件中定义(默认文件名 dimens.xml)

<resources>
    <dimen name="btn_height">50dp</dimen>
    <dimen name="btn_width">200dp</dimen>
    <dimen name="btn_margin_top">10dp</dimen>
    <dimen name="btn_text_size">20sp</dimen>
    <dimen name="tip_text_size">20sp</dimen>
</resources>

第六节 触屏事件

  • 重写方法 onTouchEvent
  • 在控件上注册方法 setonTouchEventListener(..)
//重写Activity的 onTouchEvent 方法    
@Override
    public boolean onTouchEvent(MotionEvent event) {
        float x = event.getX();
        float y = event.getY();
        switch (event.getAction())
        {
            case MotionEvent.ACTION_DOWN:
                Log.i(TAG, "onTouchEvent: " + "按下 X=" + x + " Y=" + y);
                break;
            case MotionEvent.ACTION_MOVE:
                Log.i(TAG, "onTouchEvent: " + "移动 X=" + x + " Y=" + y);
                break;
            case MotionEvent.ACTION_UP:
                Log.i(TAG, "onTouchEvent: " + "抬起 X=" + x + " Y=" + y);
                break;
        }
        //默认返回 false ,表示在未处理完,需要向上传递。
        //如果已处理完可以返回 true
        return super.onTouchEvent(event);
    }

 

本文地址:https://blog.csdn.net/jingliuting/article/details/107440586

相关标签: Android