带有generated后缀的就是自动生成的
带有test的就是测试的
res
drawble:存放图片
layout:布局
mipmap:存放图标
values:存放一些值
colors.xml:放颜色
string.xml:放字符串
themes:总体样式
project视图:
libs:放依赖库
src:存放代码
mainifest文件
<action android:name="android.intent.action.MAIN" />
声明主页面
如何启动
先找到mainifest中的那句代码,到java文件,启动布局文件
Gradle文件
library是库类型的,对子模块的配置
gradle和gradle的版本要匹配
build.gradle中的defaultConfig是系统设置
compileSdk:变异代码所使用的sdk版本
minSdk:手机设置的最小版本
targetSdk:手机设备的目标版本
写页面
android:gravity=""//内容的位置
android:layout_gravity="center"//控件在整个父控件的布局
布局
线性布局:linearLayout
单位:
sp为字体设计、dp为控件设置
在父控件中加:
android:orientation="vertical"
设置比重
android:layout_weight="1"//占据该方向的比例
相对布局RelativeLayout
初始是叠加的
父控件声明为RelativeLayout
也可以给子控件加:
android:padding="20dp"
帧布局FrameLayout
做一个占位
ConstrainLayout
约束布局,为view添加约束来确定位置
修改时容易错乱、代码可读性变差
tools:表示写代码的时候临时的文字
新建工程的时候不能有空格,有空格的话,之后新建module会卡死
导入自定义字体
找到控件
findViewById(R.id.tv_hello);
textView.setTypeface(Typeface.createFromAsset(getAssets(),"FZSTK.TTF"));
自动补全代码的快捷键:ctrl+shift+回车
自动生成声明变量:alt+enter
删除一行代码:ctrl+x
整理代码:ctrl+alt+l
其他view属性
EditText的使用
android:drawableRight="@drawable/ic_launcher_foreground"//左右图标
android:hint="输入账号"//灰色提示
Button的使用
androidx.appcompat.widget.AppCompatButton
可以改变背景色
imageView
java代码操作:
ImageView pic = findViewById(R.id.iv_pic);
pic.setImageResource(R.drawable.ic_launcher_background);
滑动视图
ScrollView:有竖直方向和水平方向
控件的可见性
Android:visibility
两种绑定点击事件的方法
在xml中绑定
android:onClick="changeText"
public void changeText(View view){
}
在java代码中绑定
btnChangeJava = findViewById(R.id.btn_change);
btnChangeJava.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
另一种写法:
btnChangeJava.setOnClickListener(this);
@Override
public void onClick(View view) {
int id = view.getId();
if (id==R.id.btn_change){
textView.setText("恭喜发钗");
}
}
弹一个toast
Toast.makeText(this, "你点击了短toast", Toast.LENGTH_SHORT).show()
log的优先级别
有打印级别的
使用资源res
res-values-strings.xml中有值
先在string.xml中定义:
<string-array name="myStr">
<item>\"恭喜发财\"</item>
<item>恭喜发财</item>
<item>恭喜发财</item>
</string-array>
然后再java里面使用:
content=getResources().getStringArray(R.array.myStr);
dimens.xml:尺寸的使用
定义:
<dimen name="btnHeight">13dp</dimen>
style.xml:
相当于css文件夹
style="@style/myBtnStyle"
<style name="myBtnStyle" parent="Theme.AppCompat.Light">
<item name="android:layout_height">50dp</item>
<item name="android:textSize">25dp</item>
<item name="android:textColor">@color/teal_200</item>
</style>
activity的生命周期
onpause:小数据的保存
activity的显式跳转
Intent intent = new Intent(MainActivity.this,SettingActivity.class);//设置意图,并且添加参数
activity的隐式跳转(用其他的软件来打开页面)
Action:动作
<intent-filter>
<action android:name="com.example.jumpapplication.CustomActivity"/>
</intent-filter>//写在mainfest里面
category:
<category android:name="android.intent.category.DEFAULT"/>
Data:
public void toCall(View view) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:110"));
startActivity(intent);
}
Activity的启动模式
standard模式
一层落一层
SingleTask模式(栈内复用)
a-b-c-d,再从d跳到a,dcb会push出来
SingleTop模式
栈顶复用
Singleinstance模式
新建栈