VectorCompatTextView 开源项目教程
1. 项目的目录结构及介绍
VectorCompatTextView 项目的目录结构如下:
VectorCompatTextView/
├── app/
│ ├── src/
│ │ └── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── xw/
│ │ │ └── sample/
│ │ │ └── vectorcompattextview/
│ │ │ └── MainActivity.java
│ │ └── res/
│ │ ├── drawable/
│ │ ├── layout/
│ │ ├── mipmap/
│ │ └── values/
├── gradle/
├── vectorcompattextview/
└── settings.gradle
目录结构介绍
- app/: 包含应用程序的主要代码和资源文件。
- src/main/java/: 包含项目的Java源代码。
- com/xw/sample/vectorcompattextview/: 包含项目的主要Java文件,如
MainActivity.java
。
- com/xw/sample/vectorcompattextview/: 包含项目的主要Java文件,如
- src/main/res/: 包含项目的资源文件,如布局文件、图片资源等。
- src/main/java/: 包含项目的Java源代码。
- gradle/: 包含Gradle构建系统的配置文件。
- vectorcompattextview/: 包含库的源代码和资源文件。
- settings.gradle: 项目的Gradle设置文件,用于包含子项目。
2. 项目的启动文件介绍
项目的启动文件是 MainActivity.java
,位于 app/src/main/java/com/xw/sample/vectorcompattextview/
目录下。
MainActivity.java 文件介绍
package com.xw.sample.vectorcompattextview;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.app.AppCompatDelegate;
import android.view.View;
import android.widget.RadioGroup;
import com.xw.repo.VectorCompatTextView;
public class MainActivity extends AppCompatActivity {
static {
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final VectorCompatTextView checkableTv1 = findViewById(R.id.checkable_text_view1);
checkableTv1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkableTv1.toggle();
checkableTv1.setText(checkableTv1.isChecked() ? "SELECTED TAB" : "UNSELECTED TAB");
}
});
final VectorCompatTextView checkableTv2 = findViewById(R.id.checkable_text_view2);
checkableTv2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
checkableTv2.toggle();
checkableTv2.setText(checkableTv2.isChecked() ? "Night Mode" : "Day Mode");
}
});
final VectorCompatTextView demoTv = findViewById(R.id.demo_tv);
((RadioGroup) findViewById(R.id.radio_group)).setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
// 处理RadioGroup的选中状态变化
}
});
}
}
功能介绍
- AppCompatDelegate.setCompatVectorFromResourcesEnabled(true): 启用矢量资源兼容性。
- onCreate(Bundle savedInstanceState): 初始化活动,设置布局文件,并处理视图的点击事件。
3. 项目的配置文件介绍
项目的配置文件主要包括 build.gradle
和 settings.gradle
。
build.gradle 文件介绍
build.gradle
文件位于项目的根目录和 app
目录下。
根目录下的 build.gradle
// 根目录下的 build.gradle 文件内容
buildscript {
repositories {
google()
jcenter()
}