Android Studio安卓开发初步学习

Android Studio安卓开发

1.Android Studio概述

Android Studio 是谷歌推出的一个Android集成开发工具,基于[IntelliJ IDEA](https://baike.baidu.com/item/IntelliJ IDEA). 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。

2.组件

2.1布局管理器

2.1.1线性布局

类似于相对布局

2.1.2相对布局

Relative Layout

常用属性:Bottom

android:layout_toRightOf//在谁的右边
android:layout_toBottom//在谁的底部
android:layout_toParentBottom//在父类的底部
android:layout_below//在谁的下边

具体代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <View
        android:id="@+id/view_1"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="@color/black"
        android:layout_alignParentLeft="true"//在父类的左边
        android:layout_alignParentTop="true">//在父类的顶部
    </View>
    <View
        android:id="@+id/view_2"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="#FF0000"
        android:layout_toRightOf="@id/view_1">//在父类的右边
    </View>

    <LinearLayout
        android:id="@+id/ll_2"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:orientation="horizontal"//布局内的控件横向排放
        android:background="#4BFF00"
        android:layout_below="@id/view_1"//在view_1控件的下边
        android:padding="15dp">

        <View
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:background="@color/purple_200">
        </View>

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/purple_700"
            android:padding="15dp">

            <View
                android:id="@+id/view_3"
                android:layout_width="100dp"
                android:layout_height="match_parent"
                android:background="@color/teal_200">
            </View>

            <View
                android:id="@+id/view_4"
                android:layout_width="100dp"
                android:layout_height="match_parent"
                android:background="@color/teal_700"
                android:layout_toRightOf="@id/view_3">
            </View>

        </RelativeLayout>
    </LinearLayout>
</RelativeLayout>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ajhkxtrX-1617429932108)(C:\Users\29608\AppData\Roaming\Typora\typora-user-images\image-20210402144134127.png)]

2.2TextView

文字大小,颜色:

android:textColor="@color/black"
android:textSize="48sp"

行内显示不下用“…”代替:

android:maxLines="1"
android:ellipsize="end"

文字后面插入图片:

android:drawableRight="@mipmap/ic_launcher"

中划线:(需要写在Java文件里面)

mTv4 = findViewById(R.id.tv_4);
mTv4.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);//设置中划线
mTv4.getPaint().setAntiAlias(true);//美化中划线

下划线:

mTv5 = findViewById(R.id.tv_5);
mTv5.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);

用HTML写下划线:

mTv6 = findViewById(R.id.tv_6);
mTv6.setText(Html.fromHtml("<u>许安杰</u>"));

文字一行内滚动显示:

android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:clickable="true"
android:focusable="true"
android:focusableInTouchMode="true"

全部代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="20dp">

    <TextView
        android:id="@+id/tv_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="xuanjie"
        android:textColor="@color/black"
        android:textSize="48sp">
    </TextView>

    <TextView
        android:id="@+id/tv_2"
        android:layout_width="150dp"
        android:layout_height="wrap_content"
        android:maxLines="1"
        android:ellipsize="end"
        android:text="xuanjie"
        android:textColor="@color/black"
        android:textSize="48sp"
        android:layout_marginTop="10dp">
    </TextView>

    <TextView
        android:id="@+id/tv_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="筛选"
        android:drawableRight="@mipmap/ic_launcher"
        android:textColor="@color/black"
        android:textSize="48sp">
    </TextView>

    <TextView
        android:id="@+id/tv_4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="xuanjie"
        android:textColor="@color/black"
        android:textSize="48sp">
    </TextView>

    <TextView
        android:id="@+id/tv_5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="xuanjie"
        android:textColor="@color/black"
        android:textSize="48sp">
    </TextView>

    <TextView
        android:id="@+id/tv_6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textColor="@color/black"
        android:textSize="48sp">
    </TextView>

    <TextView
        android:id="@+id/tv_7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="许安杰许安杰许安杰123许安杰许安杰许安杰123"
        android:textColor="@color/black"
        android:textSize="48sp"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        android:clickable="true"
        android:focusable="true"
        android:focusableInTouchMode="true">
    </TextView>

</LinearLayout>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pVFjeRui-1617429932110)(C:\Users\29608\AppData\Roaming\Typora\typora-user-images\image-20210402153040079.png)]

2.3Button

文字大小,颜色:

android:textSize="20sp"
android:textColor="#FF0000"

自定义背景颜色:

android:background="@color/black"//自定义为黑色

android:background="@drawable/button"//自定义时,引用其他文件资源
//在drawable下新建shape类型的资源button.xml写以下代码
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <solid android:color="#9C00FF"></solid>//背景颜色
    <corners android:radius="55dp"></corners>//圆角矩形

</shape>

自定义按压效果:

android:background="@drawable/press"
//在drawable下新建selector类型的资源press.xml写以下代码
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">//设置鼠标按压时的效果
        <shape>
            <solid android:color="@color/purple_700"></solid>//背景颜色
            <corners android:radius="25dp"></corners>//圆角矩形
        </shape>
    </item>
    <item android:state_pressed="false">//设置鼠标未被按压时的正常效果
        <shape>
            <solid android:color="@color/teal_200"></solid>//背景颜色
            <corners android:radius="5dp"></corners>//圆角矩形
        </shape>
    </item>
</selector>

点击事件:

点击事件需要在Java文件里面写点击事件,有两种添加方式:

android:onClick="showToast"//在Button里面加上方法名

//在Java文件里面自定义方法
public void showToast(View view){
        Toast.makeText(this,"444我被点击了",Toast.LENGTH_SHORT).show();
    }
//直接在Java文件里面写点击事件,在里面添加Button
mBtn3 = findViewById(R.id.btn3);//找到xml里面的Button
mBtn3.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(ButtonActivity.this,"333我被点击了",Toast.LENGTH_SHORT).show();//这是一个弹出消息
    }
});

当然,还可以给TextView加点击事件,方法和上述代码相同

2.4EditText

常用属性:

android:hint="用户名"//输入框中默认的文字
android:inputType="number"//输入的内容格式
android:paddingLeft="10dp"//输入框中的内容距离左边框的距离
android:paddingRight="10dp"//输入框中的内容距离右边框的距离
android:background="@drawable/username"//设置输入框的格式
android:drawableLeft="@mipmap/ic_launcher"//在输入框中导入一个小图标
android:drawablePadding="5dp"//图标和其他内容间隔的距离

监听事件:

//设置输入框的监听
mEtUserName = findViewById(R.id.et_1);
mEtUserName.addTextChangedListener(new TextWatcher() {
    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
		//在输入框输入之前
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        Log.d("edittext",s.toString());//在输入框输入时打印输入的内容
    }

    @Override
    public void afterTextChanged(Editable s) {
		//在输入框输入之前
    }
});

整体代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".EditTextActivity"
    android:padding="15dp">
     <EditText
         android:id="@+id/et_1"
         android:layout_width="match_parent"
         android:layout_height="50dp"
         android:textSize="16sp"
         android:textColor="@color/teal_200"
         android:hint="用户名"
         android:inputType="number"
         android:background="@drawable/username"
         android:paddingLeft="10dp"
         android:paddingRight="10dp"
         android:drawablePadding="5dp"
         android:drawableLeft="@mipmap/ic_launcher">
     </EditText>
    <EditText
        android:id="@+id/et_2"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:textSize="16sp"
        android:textColor="#FF9800"
        android:inputType="textPassword"
        android:hint="密码"
        android:layout_below="@id/et_1"
        android:layout_marginTop="15dp"
        android:background="@drawable/username"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:drawablePadding="5dp"
        android:drawableLeft="@mipmap/ic_launcher">
    </EditText>
    <Butto>
        android:id="@+id/btn_login"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_below="@id/et_2"
        android:layout_marginTop="40dp"
        android:text="登录"
        android:textColor="#FFFFFF"
        android:textSize="25sp"
        android:background="@drawable/press">
    </Button>
</RelativeLayout>



package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class EditTextActivity extends AppCompatActivity {
    private Button mBtnLogin;
    private EditText mEtUserName;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_edit_text);

        mBtnLogin = findViewById(R.id.btn_login);
        mBtnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(EditTextActivity.this,"登录成功!",Toast.LENGTH_SHORT).show();
            }
        });

        mEtUserName = findViewById(R.id.et_1);
        mEtUserName.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                Log.d("edittext",s.toString());
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WhkXoFxy-1617429932111)(C:\Users\29608\AppData\Roaming\Typora\typora-user-images\image-20210403123412296.png)]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值