【2021 最新版】Android studio全套教程+Android(安卓)开发入门到精通(项目实战篇)_哔哩哔哩_bilibili
启动你的大宝贝AndroidStudio,创建新工程
一、新建工程
File---->new---->new Project---->Empty Activity
工程创建好后
1.打开activity_main.xml,把这些内容都删除掉,自己写一个布局。
实例代码如下
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical"
>
....
....
....
</LinearLayout>
2.写出一个Button
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:orientation="vertical">
<Button
android:text="Button"
android:textColor="#FFFF0000"
android:background="#12FFD8"
android:layout_height="100dp"
android:layout_width="200dp" />
</LinearLayout>
二、了解Button属性 StateListDrawable
StateListDrawable是Drawable资源的一种,可以根据不同的状态,设置不同的图片效果,关键节点< selector >,我们只需要将Button的background属性设置为该drawable资源即可轻松实现,按下按钮时不同的按钮颜色或背景
1.drawable:引用Drawable位图
2.state_focused:是否获得焦点
3.state_pressed:控件是否被按下
4.state_enabled:控件是否可用
5. state_selected:控件是否被选择,针对有滚轮的情况6. state_checked:控件是否被勾选
7. state_checkable:控件可否被勾选,eg:checkbox8. state_window_focused:是否获得窗口焦点
9. state_active:控件是否处于活动状态,eg:slidingTab
10.state_single:控件包含多个子控件时,确定是否只显示一个子控件
11.state_first:控件包含多个子控件时,确定第一个子控件是否处于显示状态
12.state_middle:控件包含多个子控件时,确定中间一个子控件是否处于显示状态
13.state_last:控件包含多个子控件时,确定最后一个子控件是否处于显示状态
1.新建selector文件,给Button选择logo文件,暂且叫做logo好了。
导入两张自己喜欢的logo作为Button的logo
然后:
选中res---->new---->Drawable resource file
Resource Type选择为Drawable才会有Root element出现 Root element对应的是selector
同时生成的btn_selector文件也会在res---->Drawable目录下生成
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_sentiment_satisfied_black_24dp" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_sentiment_neutral_black_24dp"/>
</selector>
2.新建color文件,按下Button时logo颜色发生变化
为了改变logo自带的默认的颜色,让按钮按下去和弹回来有一个颜色的变化,提升趣味性,我们新建一个btn_color_selector.xml的文件,设置state为pressed时的颜色为红色和普通状态下的绿色。
在有些版本的AndroidStudio中是
选中res---->directory---->自己命名为:color,在color下新建Color resource file
我的是
Android Studio 3.5.2
Build #AI-191.8026.42.35.5977832, built on October 31, 2019
JRE: 1.8.0_202-release-1483-b03 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
在res下新建Android Resource File
在btn_color_selector.xml中
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="#ffff0000" android:state_pressed="true"/>
<item android:color="#ff00ff00" />
</selector>
回到activity_main.xml中将backgroundTint改为@color/btn_color_selector
button可以设置前景色,和设置背景色的原理是一样的,不过会把字体给覆盖,一般不设置