1.工程结构介绍
app工程文件如下:
总目录
.gradle和.Idea是Andriod studio 自动生成的文件,而且不用手动去编辑,打包时会将其删除。 App文件夹是代码和资源等一些东西,工作的核心目录。 Gradle是一个构建器,里面还会有相应的版本。 .gitignore是一个版本控制的时候,可以将一些版本和目录排除在外,像git的时候可以将部分代码排除到外。 Build.gradle是项目gradle全局的构建脚本,一般该文件夹是不用修改的。 Gradle.properties是项目的全局的gradle配置文件。 Gradlew和gradlew.bet 是用来编写gradle命令的,是操作系统有关的,E.g. Gradlew是linux和max系统上的而gradlew.bet是window 系统中实现的。 Local.porperties是sdk的路径,都会自动生成,也可以进行更改sdk的路径。 Sttings.gradle是我们项目中所有的引路的路径。 External.libraries是第三方的库文件。(libraries文件)
app目录
Build是在Andriod Studio中的build的make project 的部署下生成的目录文件夹。 Libs是第三方的jar包都要放在这个目录。 Gitignore是管理app内部的版本文件夹。 Build.gradle是项目app全局的构建脚本。
src目录
AndroidTest是测试andriod的引用的
Main 目录
AndriodManifest.xml是app的清单文件,一般会有我们使用的组件。(app的权限和图标等)
Main中的java是java文件的地方 Com.example.myapplication是包名(app)
Res中的文件比较多,都是关于app的布局文件。 Drawable是关于图片的文件夹。 Layout是我们app的布局文件。 Mipmap是图标的放置,后缀不同——屏幕的适配。 Values是用来放颜色,字符串,主题文件的。
工程文件夹目录介绍结束。
2.控件介绍
TextView
1.TextView组件
- layout. _width:组件的宽度
- layout_ height:组件的高度
- id:为TextView设置一个组件id
- text:设置显示的文本内容
- textColor:设置字体颜色
- textStyle::设置字体风格,三个可选值: normal(无效果), bold(加粗), italic(斜体)
- textSize:字体大小,单位一般是用sp
- background:控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片
- gravity:设置控件中内容的对齐方向,TextVlew中是文字, ImageView中是图片等等。
Andriod Studio 自带的Activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#CF2861"
android:backgroundTint="#009688"
android:backgroundTintMode="src_in"
android:foregroundTint="#CDDC39"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="42dp"
android:autoSizeMaxTextSize="60sp"
android:text="Hello World!"
android:textColor="#FFEB3B"
android:textColorHighlight="#DC396D"
android:textColorLink="#9C27B0"
android:textSize="48sp"
android:visibility="visible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.497"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.32999998"
tools:ignore="TextContrastCheck" />
</androidx.constraintlayout.widget.ConstraintLayout>
学属性最好的方式就是将代码写到程序中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/tv_one"
android:text="TextView学习"
android:textColor="#ffff0000"
android:textStyle="bold"
android:textSize="36sp"
android:background="#55ff0000"
android:gravity="center"
android:layout_width="225dp"
android:layout_height="224dp">
</TextView>
</LinearLayout>
LinearLayout 是个容器(布局) android:textColor="#ffff0000"由8个字符构成,前两为透明度,后面6位为颜色。 android:textStyle="bold"有三种选择。 android:textSize="36sp"有三种基本选择,也可以用数字表示,单位为“sp”。
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv_one = findViewById(R.id.tv_one);
tv_one.setText("leo");
}
}
其中的Id是写到.ava文件中
tv_one.setText("leo");
会影响用行的结果,正规的项目一般都在values文件夹的string.xml中写。
2.带阴影的TextView
- android:shadowColor:设置阴影颜色需要与shadowRadius一起使用
- android:shadowRadius:设置阴影的模糊程度设为0.1就变 成字体颜色了建议使用3.0
- android:shadowDx:设置阴影在水平方向的偏移,就是水平方向阴影开始的横坐标位置
- android:shadowDy:设置阴影在竖直方向的偏移,就是竖直方向阴影开始的纵坐标位置
3.实现跑马灯的效果的TextView
- android:singleLine:内容单行显示
- android:focusable:是否可以获取焦点
- android:focuablelnTouchMode:用于控制视图在触摸模式下是否可以聚焦
- android:ellipsize:在哪里省略文本
- android:marqueeRepestima:字幕动面重复的次数
button
1.StateListDrawable
StateListDrawable是Drowable资源的一种,可以根据不同的状态,设置不同的图片效果,关键节点,我们只需要将Button的background属性设置为该drawable资源即可轻松实现,按下按钮时不同的按钮颜色或背景 7. drawable:引用的Drawable位图 8. state_focused:是否获得焦点 9. state_pressed:控件是否被按下 10. state_enabled:控件是否可用 11. state_selected:控件是否被选择,针对有滚轮的情况 12. state_checked:控件是否被勾选 13. state_checkable:控件可否被勾选eg:checkbox 14. state_window_focused:是否获得窗口焦点 15. state_gactive:控件是否处于活动状态.eg:slidingTab 16. state_single:控件包含多个子控件时,确定是否只显示一个子控件 17. state_first:控件包含多个子控件时,确定第一个子控件是否处于显示状态 18. state_middle:控件包含多个子控件时,确定中间一个子控件是否处于显示状态 19. state_last:控件包含多个子控件时,确定最后一个子控件是否处于显示状态
|