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)]