Android Studio快速上手


废话不啰嗦

1.什么是Activity?

通常一个界面就是一个Activity,但不一定所有界面都是,有些是对话框。
Activity也可以通过透明效果,做出对话框的效果。

2.Activity的一般结构

逻辑层面
一个java类:用来描述逻辑,例如:按钮点击;登录这样的逻辑。
一个布局:用来描述样式和位置,例如:按钮颜色,按钮大小,按钮位置。
Activity组成部分
一个Activity对应一个java类文件和一个XML文件。

3.控件分类

容器控件:内部还能放其他控件。
非容器控件:内部不能放其他控件,例如button。

4.尺寸单位

不推荐px单位,字体用sp单位,除字体外都用dp单位。
dp:与设备无关像素,根据屏幕的缩放自动计算,1dp在缩放为1的设备上,就是1px,在缩放为2的设备上就是2px。

5.TextView控件显示文本

非容器类型控件

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:text="Hello World!"  
        android:textSize="50sp"
        android:textColor="#f00"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

6.在代码中操作控件

要在代码中操作空间,要先找到控件,因此需要先给空间取个名字,即id属性

<TextView
		android:id="@+id/tv"
		<!--包裹-->
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        <!--显示的文本-->
        android:text="Hello World!"  
        android:textSize="50sp"
        android:textColor="#f00"
        <!--app:layout_constrain是布局相关的-->
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

android:id="@+id/tv",然后在代码中找到相应的控件,通过findViewById的方法:

TextView tv = findViewById(R.id.tv);
        tv.setText("Hello tv!");

7.线性布局LinearLayout的使用

外部容器的布局设置,LinearLayout:线性布局,其默认的方向是水平(horizontal);
更改为垂直只需要设置orientation属性位vertical

<LinearLayout 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:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:textSize="50sp"
        android:textColor="#f00"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/tv2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:textSize="50sp"
        android:textColor="#f00"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />


</LinearLayout>

边距:
可以给LinearLayout设置一个padding,或者TextView设置margin

8.button及捕获点击事件

<Button
        android:id="@+id/bt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="点我" />
Button bt = findViewById(R.id.bt);
        bt.setOnClickListener(new View.OnClickListener(){
           @Override
           public void onClick(View v){
               Toast.makeText(MainActivity.this,"???",Toast.LENGTH_LONG).show();
           }
        });

9.可视化布局

打开布局文件,切换到可视化
在这里插入图片描述

10.如何创建Activity

Activity就是一个类,一个界面会有一个java类,还有一个布局文件,还有一些其他文件。所以可以按照java中的方法来分包。例如:我们可以将所有的Activity放到activity包中,这样方便管理。

创建包
在这里插入图片描述
创建Activity
选中包,右键New-Activity-选择一个模板,输入名称,finish。

11.开启一个Activity

点击button实现界面的跳转。
activity_main.xml中添加一个Button

<Button
        android:id="@+id/bt_openSecond"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="跳转到第二个界面"/>

然后在MainActivity.java中添加

Button bt_openSecond = findViewById(R.id.bt_openSecond);
        bt_openSecond.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                startActivity(intent);
            }
        });

Intent是信息的载体,是一个将要执行的动作的抽象的描述,用它可以去请求组件做相应的操作,一般来说是作为参数来使用,由Intent来协助完成 Android各个组件之间的通讯。
Intent一般用于启动Activity、启动服务,发送广播等,承担了Android应用程序三大核心组件的相互通信功能。
1.开启一个新的Actiity–显式Intent
首先实例化一个intent对象,构造方法中接受两个参数,第一个参数Context需要填入一个启动活动的上下文,一般为当前的Activity,第二个参数Class是要启动的目标Activity的java类,这样就构造出一个表示我们"意图"的intent对象。
如上面这段代码,首先构造出一个intent,将当前的activity作为上下文,SecondActivity作为目标activity,然后用startActivity()方法开启新的activity,即当点击当前activity页面的按钮,就会跳转到第二个activity。
2.开启一个新的Activity–隐式Intent
没有明确指定组件名的Intent称为隐式意图。系统会根据隐式意图中设置的动作(action)、类别(category)、数据(Uri和数据类型)找到最合适的组件。

AndroidManifest.xml文件中,首先被调用的Activity要有一个带有<intent-filter>并且包含<action>的Activity,设定它能处理的Intent,并且category设为"android.intent.category.DEFAULT"。action的name是一个字符串,可以自定义,例如我在这里设成"abcdefg":

Action:用来指明要实施什么动作,一些常用的Action如下:

ACTION_CALL                                启动一个电话
ACTION_EDIT                                 显示用户编辑的数据
ACTION_MAIN                                作为Task中第一个Activity启动
ACTION_SYNC                               同步手机与数据服务器上的数据
ACTION_BATTERY_LOW              电池电量过低警告
ACTION_HEADSET_PLUG            插拔耳机警告
ACTION_SCREEN_ON                   屏幕变亮警告
ACTION_TIMEZONE_CHANGED   改变时区警告

Category:一个字符串,包含了关于处理该intent的组件的种类信息。一个intent对象可以有任意个category。intent类定义了许多category常数。

12.关闭Activity

点击返回键可以关闭当前的Activity,这是系统默认实现的,当然也可以自己实现一个按钮,点击时关闭当前的Activity,比如左上角的"←"键。

activity_second.xml文件中创建一个button控件

<Button
        android:id="@+id/bt_Close"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="关闭"/>

然后在SecondActivity.java中设置监听器,实现关闭

public class SecondActivity extends AppCompatActivity implements View.OnClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);

        Button bt_Close = findViewById(R.id.bt_Close);
        bt_Close.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {
        finish();
    }

这是让当前类实现监听器,前面使用的是匿名监听器。

13.src-main-AndroidManifest.xml文件作用

该文件可以翻译为“清单文件”,所以说它的功能就是将当前应用的界面等组件写到这里,好处是Android会用到,例如:手动安装apk文件时,都会显示一个界面,说这个应用需要哪些权限,而这些权限就是写到该文件的。

文件格式还是xml文件:

<?xml version="1.0" encoding="utf-8"?>
<!--版本,编码声明,必须写到第一行,注释也不行-->

<!--清单的开始,只能有一个manifest-->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.a01_example">
    <!--package:表示这个应用包名,就是表示唯一应用-->

    <!--application是应用的全局配置-->
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <!--这里就是activity-->
        <activity android:name=".MainActivity">
        <!--name完整的名称是"com.example.a01_example.MainActivity",即包名+".xxxxx"-->
            
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <!--这是另一个activity-->
        <activity android:name=".activity.SecondActivity"></activity>
    </application>
</manifest>

android.intent.action.MAIN:表示该Activity是应用的启动入口,且不需要任何Intent携带的数据。
android.intent.category.LAUNCHER:表示将该Activity的图标设为手机主屏幕上的应用图标,如果它没有图标,就用Application的图标。
若你换一个默认页面入口,只需将<intent-filter></intent-filter>和其里面的内容放入到你要设置的那个activity中去即可。

14.手动创建Activity

前面说过,一个activity对应一个java类和一个xml布局文件,因此在手动创建activity时,就是需要创建二者,并进行一些相关的配置。
①首先创建java文件,继承AppCompatActivity类(可以参考其他activity的java文件)
②在res下的layout文件中创建xml文件,选择根元素后创建。
这里注意一点,java文件和xml文件的命名最好按照系统的默认套路,比如FirstAcitvity.java对应activity_first.xml这样。
③创建完两个文件后,他们之间还没有什么关系,此时需要将二者关联起来,只需要在java文件的onCreate方法中,通过setContentView方法中设置,可以参考其他activity。
④在清单文件中配置此activity,参考其他activity。

Android Studio界面
在这里插入图片描述

将项目运行到模拟器
将项目运行到手机上
开启开发者模式:关于手机->连续点击3,4次Android版本 更多设置中会出现开发者选项,打开USB调试
USB连接电脑,运行项目是就会有真实设备选项。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值