这是一个简略方便的Android自定义View库,我一向有一个主意弄一个开源库,现在这个主意付诸实现了,如果有什么需要自定义的View能够提出来,不一定都会采纳,合理的会采纳,时刻周期不确保,咱要量力而行呀,结壮一点。

装备EasyView

1. 工程build.gradle 或 settings.gradle装备

   代码现已推送到MavenCentral(),在Android Studio 4.2以后的版别中默许在创建工程的时分运用MavenCentral(),而不是jcenter()

   如果是之前的版别则需要在repositories{}闭包中增加mavenCentral(),不同的是,老版别的Android Studio是在工程的build.gradle中增加,而新版别是工程的settings.gradle中增加,如果现已增加,则不要重复增加。

repositories {
    ...
    mavenCentral()
}

2. 运用模块的build.gradle装备

   例如在app模块中运用,则翻开app模块下的build.gradle,在dependencies{}闭包下增加即可,之后记得要Sync Now

dependencies {
    implementation 'io.github.lilongweidev:easyview:1.0.2'
}

运用EasyView

   这是一个自定义View的库,会渐渐丰厚里面的自定义View,我先画个饼再说。

一、MacAddressEditText

   MacAddressEditText是一个蓝牙Mac地址输入控件,点击之后出现一个定制的Hex键盘,用于输入值。

1. xml中运用

   首先是在xml中增加如下代码,具体参阅app模块中的activity_main.xml。

    <com.easy.view.MacAddressEditText
        android:id="@+id/mac_et"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:boxBackgroundColor="@color/white"
        app:boxStrokeColor="@color/black"
        app:boxStrokeWidth="2dp"
        app:boxWidth="48dp"
        app:separator=":"
        app:textColor="@color/black"
        app:textSize="14sp" />

2. 特点介绍

   这儿运用了MacAddressEditText的一切特点,能够自行进行设置,运用阐明参阅下表。

特点 阐明
app:boxBackgroundColor 设置输入框的布景色彩
app:boxStrokeColor 设置输入框的边框色彩
app:boxStrokeWidth 设置输入框的边框巨细
app:boxWidth 设置输入框巨细
app:separator Mac地址的分隔符,例如分号:
app:textColor 设置输入框文字色彩
app:textSize 设置输入框文字巨细

3. 代码中运用

    MacAddressEditText macEt = findViewById(R.id.mac_et);
    String macAddress = macEt.getMacAddress();

   macAddress或许会是空字符串,运用之前请判断一下,参阅app模块中的MainActivity中的运用方法。

二、CircularProgressBar

   CircularProgressBar是圆环进度条控件。

1. xml中运用

   首先是在xml中增加如下代码,具体参阅app模块中的activity_main.xml。

    <com.easy.view.CircularProgressBar
        android:id="@+id/cpb_test"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        app:maxProgress="100"
        app:progress="10"
        app:progressbarBackgroundColor="@color/purple_500"
        app:progressbarColor="@color/purple_200"
        app:radius="80dp"
        app:strokeWidth="16dp"
        app:text="10%"
        app:textColor="@color/teal_200"
        app:textSize="28sp" />

2. 特点介绍

   这儿运用了MacAddressEditText的一切特点,能够自行进行设置,运用阐明参阅下表。

特点 阐明
app:maxProgress 最大进度
app:progress 当时进度
app:progressbarBackgroundColor 进度条布景色彩
app:progressbarColor 进度色彩
app:radius 半径,用于设置圆环的巨细
app:strokeWidth 进度条巨细
app:text 进度条中心文字
app:textColor 进度条中心文字色彩
app:textSize 进度条中心文字巨细

3. 代码中运用

    CircularProgressBar cpbTest = findViewById(R.id.cpb_test);
    int progress = 10;
    cpbTest.setText(progress + "%");
    cpbTest.setProgress(progress);

   参阅app模块中的MainActivity中的运用方法。

三、TimingTextView

   TimingTextView是计时文字控件

1. xml中运用

   首先是在xml中增加如下代码,具体参阅app模块中的activity_main.xml。

    <com.easy.view.TimingTextView
        android:id="@+id/tv_timing"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:text="计时文字"
        android:textColor="@color/black"
        android:textSize="32sp"
        app:countdown="false"
        app:max="60"
        app:unit="s" />

2. 特点介绍

   这儿运用了TimingTextView的自定义特点不多,只有3个,TextView的特点就不罗列阐明,运用阐明参阅下表。

特点 阐明
app:countdown 是否倒计时
app:max 最大时刻长度
app:unit 时刻单位:s(秒)、m(分)、h(时)

3. 代码中运用

    TimingTextView tvTiming = findViewById(R.id.tv_timing);
    tvTiming.setMax(6);//最大时刻
    tvTiming.setCountDown(false);//是否倒计时
    tvTiming.setUnit(3);//单位 秒
    tvTiming.setListener(new TimingListener() {
        @Override
        public void onEnd() {
            //守时完毕
        }
    });
    //开始计时
    tvTiming.start();
    //停止计时
    //tvTiming.end();

   参阅app模块中的MainActivity中的运用方法。