Android Studio学习笔记(七)

一、图形Drawable 

  • Drawable 类型表达了各种各样的图形,包括图片、色块、画板、背景等。
  • 包含图片在内的图形文件放在res目录的各个drawable目录下,其中drawable目录一般保存描述性的XML文件,而图片文件一般放在具体分辨率的drawable目录下。
  • 各视图的background属性、ImageView 和ImageButton的src属性、TextView和Button四个方向的drawable***系列属性都可以引用图形文件。

  • drawable-v21 适配5.0及以上手机资源文件
  • drawable-v24 适配7.0及以上手机资源文件
  • drawable-v21 drawable-v24可共存
  • 优先从等于或者临近手机android版本的的适配资源文件夹中找适配文件,如果找不到就去更低的适配资源文件中找,如果再找不到就在drawable中找通用的适配资源;如 手机版本是7.0,就会优先从24中找,如果找不到则看有没有其他版本的适配资源,如果有21,则从21中找,如果再找不到就去drawable中找;一般情况下至少drawable中存在一个适配资源

Shape,用来描述常见的几何形状,

形状图形的定义文件是以shape标签为根节点的XML描述文件,支持四种类型的形状:

rectangle:矩形

oval:椭圆,corners节点失效

line:直线,必须设置stroke节点

ring:圆环

size(尺寸)

height:像素类型,图形高度

width:像素类型,图像宽度

stroke(描边)

stroke是shape的下级节点,它描述卡形状图形的描边规格

color:颜色类型,描边的颜色

dashGap:像素类型,每段虚线之间的间隔

dashWidth:像素类型,每段虚线的宽度,若dashGap或dashWidth为0,描边为实线

width:像素类型,描边的厚度

corners(圆角)

corners是shape的下级节点,它描述了形状图形的圆角大小,若无corners节点,则表示没有圆角

bottomLeftRadius:像素类型,左下圆角的半径

bottomRightRadius:像素类型,右下圆角的半径

topLeftRadius:像素类型,左上圆角的半径

topLeftRadius:像素类型,右上圆角的半径

radius:像素类型,4个圆角的半径

solid(填充)

​​​​​​​solid是shape的下级节点,它描述了形状图形的填充色彩。若无solid,则表示无填充颜色

color:颜色类型,内部填充的颜色

padding(间隔)

padding是shape的下级节点,它描述了形状图形与周围边界的间隔,若无padding,则表示四周不设间隔

top:像素类型,与上方的间隔

bottom:像素类型,与下方的间隔

left:像素类型,与左方的间隔

right:像素类型,与右方的间隔

gradient(渐变)

gradient是shape的下级节点,它描述了形状图形的颜色渐变,若无padding,则表示没有渐变效果

angle:整型,渐变的起始角度。为0时表示适中的9点位置,值增大表示往逆时针方向旋转。例如,值为90表示6点位置,值为180表示3点位置,值为270表示0点/12点位置。

type:字符串类型,渐变类型,如下​​​​​​​​

渐变类型说明 
linear线性渐变,默认值
radial放射渐变,起始颜色就是圆心颜色 
sweep滚动渐变,即一个线段以某个端点为圆心做360度旋转 
  • centerX:浮点型,圆心的X坐标。当android:type="linear"时不可用。
  • centerY:浮点型,圆心的Y坐标。当android:type="linear"时不可用。
  • gradientRadius:整型,渐变的半径。当android:type="radial"时需要设置该属性。
  • centerColor:颜色类型,渐变的中间颜色。
  • startColor:颜色类型,渐变的起始颜色。
  • endColor:颜色类型,渐变的终止颜色。
  • ouseLevel:布尔类型,设置为true为无渐变色、false为有渐变色。

在实际开发中,形状图形主要使用3个节点:stroke(描边)、corners(圆角)和solid(填充)。至于shape根节点的属性一般不用设置(默认矩形即可)。

示例:

二、点9图片

(png图片)

左侧图片加工,右边显示效果 

 只有黑线内图像会拉伸

 三、状态列表图形

Button正常是凸起的,按下时是凹陷的

 

state_pressed="true"  按下显示 

https://blog.csdn.net/qq_40985906/article/details/84585573

四、 复选框CheckBox

五、开关按钮Switch

Switch 是开关按钮,它在选中与取消选中时可展现的界面元素比复选框丰富。
Switch 控件新添加的XML属性说明如下:

  • textOn:设置右侧开启时的文本。
  • textOff:设置左侧关闭时的文本。
  • track:设置开关轨道的背景。
  • thumb:设置开关标识的图标。
  • check:设置开关是否开启
@Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        switch(buttonView.getId()) {
            case R.id.cb_rect:
                if (isChecked) view_content.setBackgroundResource(R.drawable.shape_rect_gold);
                break;
            case R.id.cb_oval:
                if (isChecked) view_content.setBackgroundResource(R.drawable.shape_oval_rose);
                break;
            case R.id.sw_background:
                if (isChecked) view_content.setBackgroundResource(R.drawable.shape_oval_rose);
                else view_content.setBackgroundResource(R.drawable.shape_rect_gold);
                break;
        }
    }

单选按钮RadioButton

RadioGroup实质上是个布局,同一组RadioButton都要放在同一个RadioGroup节点下。
除了RadioButton,也允许放置其他控件。

​​​​​​​ 

六、文本输入

本节介绍如何在编辑框EditText上高效地输入文本,包括:如何改变编辑框的控件外观,如何利用焦点变更监听器提前校验输入位数,如何利用文本变化监听器自动关闭软键盘。

编辑框EditText

编辑框EditText用于接收软键盘输入的文字,例如用户名、密码、评价内容等,它由文本视图派生而来,除了TextView已有的各种属性和方法,EditText还支持下列XML属性。
inputType:指定输入的文本类型。输入类型的取值说明见表5-4,若同时使用多种文本类型,则可使用竖线“|”把多种文本类型拼接起来。
maxLength:指定文本允许输入的最大长度。
hint:指定提示文本的内容。
textColorHint:指定提示文本的颜色。

输入类型说明
text文本
textPassword文本密码。显示时用圆点“·”代替
number整型数
numberSigned带符号的数字。允许在开头带负号"-" 
numberDecimal带小数点的数字
numberPassword数字密码。显示时用圆点“·”代替
datetime时间日期格式。除了数字外,还允许输入横线,斜杆、空格、冒号
date日期格式。除了数字外,还允许输入横线"-”和斜杆"/" 
time时间格式。除了数字外,还允许输入冒号":"
android:layout_marginRight 右间距

​​​​​​​​​​​​​​​​​​​​​

焦点变更监听器

1、用户名为空,提示请输入用户名

2、密码为空,提示请输入密码

 选中时框变为蓝色

 七、文本变化监听器

自动关闭软键盘

判断已输入文字达到指定位数

https://blog.csdn.net/weixin_42602900/article/details/126290125

       大多数控件都可以获取焦点,也就是处在选中状态。如果android:focusable属性值为true,表示可以通过键盘(虚拟键盘或物理键盘)或轨迹球将焦点移动到当前控件上。如果设置该属性为false,则无法将焦点移到当前控件。

       在默认情况下,触摸一个按钮虽然可以触发控件的单击事件,但无法使控件处在焦点状态。而将android:focusableInTouchMode属性设置为true,当触摸值设为ture,当触摸某个控件时,会先将焦点移动到被触摸的控件上,然后需要再触摸该控件才会响应单击事件。但要注意,需要将android:focusable属性设置为true,当前控件才可以获得焦点,否则当前控件无论使用任何方式都无法获取焦点。

 文本监听器接口名称TextWatcher:

BeforeTextWatcher,在文本改变之前

onTextWatcher,在文本改变过程中

afterTextWatcher,文本改变之后

八、提醒对话框AlertDialog

可完成提示、确定、选择等功能。AlertDialog借助建造器AlertDialog.Builder才能完成参数设置。

调用建造器的create方法生成对话框实例,再调用对话框实例的show方法,在页面上弹出提醒对话框。

​​​​​​​

九、声音播放

参考资料:https://zhuanlan.zhihu.com/p/369073201

音频加载

 private void initSound() {
        soundPool=new SoundPool.Builder().build();
        soundId=soundPool.load(this,R.raw.wav_button,1);

}

播放

public void onClick(View v) {
        switch (v.getId()){
            case R.id.bt_date:
                    soundPool.play(soundId,
                    1f,   //左耳道音量【0~1】
                    1f,   //右耳道音量【0~1】
                    0,     //播放优先级【0表示最低优先级】
                    1,     //循环模式【0表示循环一次,-1表示一直循环,其他表示数字+1表示当前数字对应的循环次数】
                    1     //播放速度【1是正常,范围从0~2】
        );
                    break;
        }

}

多个音频加载

Android 短提示音播放SoundPool 和AndroidStudio添加raw文件夹 - 灰信网(软件开发博客聚合)

Android SDK 提供的3套音频播放的API之玩转SoundPool - 知乎

initSound();

 playSound(1);

 playSound(2);

十、日期对话框DatePickerDialog

获取选择的时间

dp = findViewById(R.id.dp);
tv_date = findViewById(R.id.tv_date);
findViewById(R.id.bt_date).setOnClickListener(this);

弹出时间表

DatePickerDialog dialog = new DatePickerDialog(this,this,2023,1,1);

public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
        String desc=String.format("%d年%d月%d日",year,month,dayOfMonth);
        tv_date.setText(desc);
    }

获取当前时间

//获取日历的一个实例,里面包括当前年月日
Calendar calendar = Calendar.getInstance();
//calendar.get(Calendar.YEAR);
//calendar.get(Calendar.MONTH);
//calendar.get(Calendar.DAY_OF_MONTH);
DatePickerDialog dialog = new DatePickerDialog(this,this,calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));

十一、时间对话框TimePickerDialog

与日期相同

获取当前时间

Calendar calendar = Calendar.getInstance();
//小时,分钟,是否24小时制
TimePickerDialog dialog = new TimePickerDialog(this,this,calendar.get(Calendar.HOUR_OF_DAY),calendar.get(Calendar.MINUTE),true);
dialog.show();
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
      String desc=String.format("%d点%d分",hourOfDay,minute);
      tv_date.setText(desc);
}

### 回答1: Android Studio是Google推出的Android应用程序开发工具,它集成了开发、调试、打包等功能。要学习使用Android Studio,需要了解以下几个方面的知识: 1. Java基础: Android开发是基于Java语言的,所以要学习Android Studio首先要掌握Java基础知识。 2. Android基础: 了解Android操作系统的基本构架和常用组件,如Activity、Service、BroadcastReceiver等。 3. Android Studio使用: 了解Android Studio的基本界面和常用功能,如创建工程、编写代码、调试程序等。 4. Android SDK: 了解Android SDK的安装和配置,以及如何使用SDK Manager来下载SDK并配置项目。 5. 练习实践: 多练习实际项目,熟悉Android Studio的使用,并不断练习和完善自己的技能。 ### 回答2: Android Studio 是一个为 Android 来开发的整体开发环境。它基于 IntelliJ IDEA ,强调速度和智能操作,并致力于为应用程序开发提供高效率的开发工具。Android Studio 的推出,使得 Android 开发者更加容易地创建高质量的应用程序。 首先,要学 Android Studio ,你需要首先了解一些基本知识。学习 Android Studio 的工具包括 Gradle 、 Kotlin 和 Java 等。通过学习这些基础知识,你可以了解不同的语言、工具和框架。 在学习 Android Studio 时要使用实战性的方法。也就是说,每次学习新的东西时,你需要找到一个相关的例子。这样可以帮助你更好地理解它。如果你使用 Android Studio 模板,这将非常有用。这些模板可以帮助你创建常见的应用程序结构,并且你可以基于这些模板创建自己的应用程序。 另外,还有很多不同的工具和插件可以帮助你学习 Android Studio 。例如, Android Studio 网站上有很多有用的文章和教程,可以帮助你更好地理解 Android Studio 。还有很多在线工具可以帮助你实现特定的功能,在初学者阶段,这些工具可以为学习的难度减轻很多。 总之,学习 Android Studio 任重而道远。需要有耐心和时间,还需要不断地尝试和实践。在这个过程中,你可以尝试教学资料、交流学习合作、进一步增强你的知识水平。通过不断的应用和实践,一定可以成为一名优秀的 Android 开发者并圆满地完成应用开发。 ### 回答3: 作为一个应用开发者,学习使用安卓应用程序开发套件非常重要。Android Studio是Google出品的最新安卓开发工具,它具有多种强大的工具和功能,可以极大地提高应用程序的开发效率和质量。在学习过程中,个人对Android Studio的理解主要体现在以下几个方面。 首先,要开始使用Android Studio,需要了解它的基本结构和工具。Android Studio主要由三个主要组件组成:IDE、SDK、和Emulator。IDE是开发者使用的主要工具。它提供了编写、测试和调试代码所需的所有基本功能,包括视觉化设计器,代码编辑器和调试工具。SDK是开发应用程序所需的软件开发包。它包括实用程序和库,可用于在应用程序中实现预定功能。Emulator是一个虚拟的安卓设备,可以用来在开发应用程序时模拟真实设备上的应用程序运行情况。 其次,一些基本的编程知识也必不可少,例如Java编程、XML语言、UI界面设计等。Java是Android Studio中最常用的编程语言,用于编写应用程序的逻辑代码;XML语言则用于设计UI界面。在学习这些基本知识时,建议首先了解Java语言特性和面向对象编程理念,熟悉它们的基本语法和数据类型。同时,也可以通过在线教程和网课等方式加强对UI设计和布局的理解。 最后,学会使用网上的资源和社区的帮助非常重要。Android Studio的开发者社区很大,有很多在线资源可以帮助开发者的开发学习,例如stack overflow、CSDN社区等。同时,Google官方的开发者网站也提供了大量的文档资料、教程、API使用说明等。 总之,Android Studio学习需要进行持续不断的针对不同方面的学习和实践。要充分运用Android Studio的强大功能,建议在掌握基础知识的基础上,多做实际的项目练习,不断提高自己的技术水平和代码能力,才能成为一名优秀的安卓应用程序开发者。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值