# LearnAndroid
**Repository Path**: bakciam/learn-android
## Basic Information
- **Project Name**: LearnAndroid
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-10-15
- **Last Updated**: 2023-10-15
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 第三章 简单控件
## 3.1 文本显示
### 3.1.1 设置文本内容
在res/layout/activity_test_view里编辑其主页
```xml
```
在com/example/chapter03/testViewActivity.java
```
public class testViewActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test_view);
TextView viewById = findViewById(R.id.hello);
viewById.setText("你好世界");
}
}
```
在Android系统高于12时,需要在
```xml
```
加入
```xml
android:exported="true"
```
这个
#### 引用字符串
在res/valus/string文件中定义
```xml
chapter03
好好学习
```
1.在xml文件中引用 @string/***
```xml
```
2.在java文件中引用 R.string/***
```java
viewById.setText(R.string.hello);
```
### 3.1.2 文本大小
1.在java代码中使用setTextSize方法,设置文本大小 不需要设置单位,默认px
2.在xml代码中使用Android:textSize指定文本字体大小 单位dp
### 3.1.3 设置文本颜色
在java代码中调用setTextColor方法来设置颜色,可以调用自带的Color库

```java
TextView tv_code_color = findViewById(R.id.tv_code_color);
tv_code_color.setTextColor(Color.GREEN);
```
在xml中通过android:textColor 来设置,使用16进制来设置颜色RGBa来设置
```java
```
## 3.2 视图基础
### 3.2.1 设置视图的高度
知识点:
1. 视图宽度通过属性android:layout_width 表达,视图的高度通过android:layout_height 表达,宽度的取值主要有以下三种情况:
- wrap_content :表示与内容自适应。
- match_parent:表示与上一级视图保持一致
- 以dp为单位的具体尺寸.
2. 在Java代码中设置,需要确保在xml中宽度属性为wrap_content,然后以此执行下面的步骤
- 调用控件对象的getLayoutParams方法,获取该控件的布局参数。
- 布局参数的width属性表示宽度,height属性表示高度,修改这两个参数值。
- 调用控件对象的setLayoutParams方法,填入修改之后的布局参数使之生效。
3. 示例代码ViewBorderActivity
布局代码∶
```xml
```
java类
```java
package com.example.chapter04;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.ViewGroup;
import android.widget.TextView;
import com.example.chapter04.utils.Utils;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv_code=findViewById(R.id.tv_code);
ViewGroup.LayoutParams params=tv_code.getLayoutParams();
params.width= Utils.dip2px(this,300);
tv_code.setLayoutParams(params);
}
}
```
Utils工具类
```java
package com.example.chapter04.utils;
import android.content.Context;
public class Utils {
//根据手机的分辨率转化dp到px
public static int dip2px(Context context,float dpvalue){
///获得当前手机的像素密度(1个dp 对等几个px)
float density = context.getResources().getDisplayMetrics().density;
return ((int) (dpvalue * density + 0.5f));
}
}
```
效果图:

### 3.2.2 设置视图的间距
知识点:
1. 设置视图间距的两种方式:
- 采用android:layout_margin属性,它指定了当前视图与周围平级视图之间的距离。包括android:layout margin.
androidlayout_marginLeft、android:layout_marginTop、android:layout_marginRight、android:layout_marginBot。
- 采用android;padding属性,它指定了当前视图与内部下级视图之间的距离。包括android:padding、android:paddingandroid:paddingTop、android:paddingRight、android:paddingBottom
2. 示例代码ViewMargin :
布局代码:
```xml
```
效果图:

### 3.2.3 设置视图的对齐方式
知识点
1. 设置视图的对齐方式的两种途径:
- 采用android:layout_gravity属性,它指定了当前视图相对于上级视图的对齐方式。
- 采用android:gravity属性,它指定了下级视图相对于当前视图的对齐方式。
2. android:layout gravity与android:gravity取值包括: left 、 top、right、bottom,还可以用竖线连接各取值,例如"right | bottom",表示即靠右边,又靠下面,也即是右下角。
3. 示例代码ViewGravity :
布局代码:
```xml
```
效果图: