Android Studio第三方github库导入法(一)——CV大法

Android Studio第三方github库导入法(一)——CV大法

一、Waveform

以导入Waveform项目的wavelib库为例

Waveform项目主要是基于Android Studio环境java语言实现动态滚动波形图(心电图)

由于电赛需要进行实时绘点展现动态波形,因此采用了GiftedCat大佬的Waveform项目里的库


大佬的测试效果图:

在这里插入图片描述

GiftedCat大佬的完整博客地址:https://juejin.cn/post/6912791803779350536

github项目地址:https://github.com/Giftedcat/Waveform

二、导入方法

我这里采用的是另一种粗暴的导入法,因为大佬博客上的方法那会我还不太会用(哭笑)

1.github项目下载

先到github上的https://github.com/Giftedcat/Waveform项目界面

在这里插入图片描述

把项目下载到本地

在这里插入图片描述

2.创建一个新的项目

在这里插入图片描述

在这里插入图片描述

3.拷贝wavelib库

Waveform项目下载好后,用Android Studio打开,选择Project将里面的wavelib库进行复制

在这里插入图片描述

在我们新建的项目waveTest同样选择Project

在这里插入图片描述

在Project中右键waveTest,选择Paste(粘贴)

在这里插入图片描述

点击OK

在这里插入图片描述

粘贴好后会像下面一样,这时候呢,感觉wavelib就是个普通目录(我们希望它是一个library的形式)

在这里插入图片描述

点击setting.gradle,在setting.gradle中include 后面添加,':wavelib' , 最后点击Sync now进行同步

在这里插入图片描述

当同步好后,这时候就会发现wavelib变为library的形式啦

在这里插入图片描述

4.修改wavelib库的build.gradle文件

先把Project界面切换到Android界面

在这里插入图片描述

wavelib的build.gradle参照app的build.gradle进行对应部分的修改

在这里插入图片描述

我app的build.gradle

plugins {
    id 'com.android.application'
}

android {
    compileSdk 32

    defaultConfig {
        applicationId "com.example.wavetest"
        minSdk 21
        targetSdk 32
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {

    implementation 'androidx.appcompat:appcompat:1.3.0'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

修改前,我wavelib的build.gradle

apply plugin: 'com.android.library'
apply plugin: 'maven-publish'

group = 'com.github.Giftedcat'
version = '1.3.2'

android {
    compileSdkVersion 30
    buildToolsVersion "30.0.3"


    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 30
        versionCode 6
        versionName "1.3.2"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }


}

task comps {
    afterEvaluate {
        println("Components: " + components*.name)
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'androidx.appcompat:appcompat:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}

afterEvaluate {
    publishing {
        publications {
            // Creates a Maven publication called "release".
            release(MavenPublication) {
                from components.release
                groupId = 'com.github.Giftedcat'
                artifactId = 'Waveform'
                version = '1.3.2'
            }
        }
    }
}

修改后,我wavelib的build.gradle

apply plugin: 'com.android.library'
apply plugin: 'maven-publish'

group = 'com.github.Giftedcat'
version = '1.3.2'

android {
    compileSdkVersion 32
    buildToolsVersion "30.0.3"


    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 32
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }


}

task comps {
    afterEvaluate {
        println("Components: " + components*.name)
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'androidx.appcompat:appcompat:1.3.0'
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test:runner:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}

afterEvaluate {
    publishing {
        publications {
            // Creates a Maven publication called "release".
            release(MavenPublication) {
                from components.release
                groupId = 'com.github.Giftedcat'
                artifactId = 'Waveform'
                version = '1.3.2'
            }
        }
    }
}

修改好后,同步即可

在这里插入图片描述

5.引用wavelib库

同步好后,在MainActivity中试着写入import com.giftedcat.wavelib.view.WaveView;

import com.giftedcat.wavelib.view.WaveView;

在这里插入图片描述

此时发现报红,将鼠标光标箭头移动到WaveView处,然后点击Add…

在这里插入图片描述

Add后,错误消失,目前其实已成功导入

在这里插入图片描述

三、测试wavelib库

1.了解使用方法

参考GiftedCat大佬的项目使用介绍:使用手册

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.上手实践(单数据添加)

在activity_main.xml中,我使用了一个绘图控件布局和一个按钮(按钮作为触发数据发送)

在这里插入图片描述

activity_main.xml

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

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        <com.giftedcat.wavelib.view.WaveView
            android:id="@+id/wave_view2"
            android:layout_width="match_parent"
            android:layout_height="500dp"
            app:draw_mode="normal"
            app:wave_line_stroke_width="5"
            app:wave_background="#FFFFFF"
            tools:ignore="MissingConstraints" />
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="改变"
                android:id="@+id/bnt">
            </Button>
        </LinearLayout>

    </LinearLayout>

</androidx.constraintlayout.widget.ConstraintLayout>

MainActivity.java

package com.example.wavetest;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import com.giftedcat.wavelib.view.WaveView;

import java.util.Random;

public class MainActivity extends AppCompatActivity {
    private WaveView waveShowView;
    private Button btn1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        waveShowView = findViewById(R.id.wave_view2);

        //点击按钮
        btn1 = findViewById(R.id.bnt);
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                float data = new Random().nextFloat()*(20f)-10f;
                waveShowView.showLine(data);
                Toast.makeText(MainActivity.this,""+data,Toast.LENGTH_SHORT).show();
            }
        });

    }
}

效果展示:(当每次按下按钮时,会取到一个-10到10间的浮点数,绘图控件将其描绘在图上)

在这里插入图片描述

3.小扩展(多数据添加)

MainActivity.java(一次添加5个)

package com.example.wavetest;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.giftedcat.wavelib.view.WaveView;

import java.util.Random;

public class MainActivity extends AppCompatActivity {
    private WaveView waveShowView;
    private Button btn1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        waveShowView = findViewById(R.id.wave_view2);

        //点击按钮
        btn1 = findViewById(R.id.bnt);
        btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                int length = 5; //数据个数
                float[] datas = new float[length];
                for (int i = 0; i < datas.length; i++){
                    datas[i] = new Random().nextFloat()*(20f)-10f;
                }
                waveShowView.showLines(datas);
//                Toast.makeText(MainActivity.this,""+data,Toast.LENGTH_SHORT).show();
            }
        });

    }
}
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 可以通过以下步骤导入第三方库: 1.在项目的build.gradle文件中添加maven仓地址,例如: ``` allprojects { repositories { // ... 省略其他仓地址 ... maven { url 'https://jitpack.io' } // jitpack仓地址 } } ``` 2.在需要使用的module的build.gradle文件中添加依赖,例如: ``` dependencies { // ... 省略其他依赖 ... implementation 'com.github.username:libraryname:version' // jitpack仓的地址 } ``` 其中,`username`是发布GitHub账户名,`libraryname`是的名称,`version`是的版本号。 ### 回答2: Android StudioAndroid开发者必备的一款开发工具,也是Google官方支持的Android开发工具。其中,导入第三方库Android开发过程中常见且重要的操作,本文将针对这一操作进行详细讲解。 一、手动导入第三方库 1.将第三方库复制到项目中 将下载好的文件拷贝到项目的libs文件夹下,如下图所示: 2.在gradle文件中添加依赖项 打开项目的build.gradle文件,并在dependencies标签内添加所需要的依赖,如下所示: dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.0.+' compile project(':yourlibrary') } 其中,compile fileTree(dir: 'libs', include: ['*.jar'])表示从libs文件夹下引入所有.jar文件为依赖项;compile 'com.android.support:appcompat-v7:23.0.+'表示引入Android官方支持;compile project(':yourlibrary')表示引入自定义。 二、使用Android Studio快捷导入第三方库 1.使用Maven或JCenter 在build.gradle文件中添加依赖项时,可以直接搜索Maven或JCenter,选择需要引入的版本即可,如下所示: repositories { mavenCentral() jcenter() } dependencies { compile 'com.android.support:appcompat-v7:23.0.+' } 2.使用Android Studio插件 在Android Studio中可以安装插件,来更加便捷地导入第三方库。比如,Google官方出品的插件Android Drawable Importer,用来导入drawable资源,使用起来非常方便。 以上就是关于在Android Studio导入第三方库的方,需要注意的是,在替换原有版本时要自行检测版本兼容性,以防止出现不必要的错误。 ### 回答3: 在使用Android Studio开发Android应用时,经常需要借助第三方库来完成某些功能。这些第三方库一般由其他开发者或组织开发并发布在网络上,我们可以通过导入这些来使用它们提供的功能和类。 以下是导入第三方库的一般流程: 1. 在Gradle中添加的依赖关系 Gradle是一个构建自动化工具,它是Android Studio的构建系统。通过添加的依赖关系,Gradle会自动下载并导入的相关文件。依赖关系一般添加在app/build.gradle文件中的dependencies选项中。 例如,如果要使用Google的Material Design,可以在dependencies中添加: ``` dependencies { // ... implementation 'com.google.android.material:material:1.3.0' // ... } ``` 2. 使用第三方库 一旦依赖关系已经设置好,就可以开始使用第三方库了。使用的方根据的文档而定,一般在应用程序的Java代码中引用的类或函数即可。 例如,使用Material Design的TextView,需要在XML文件中设置样式: ``` <com.google.android.material.textview.MaterialTextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/hello_world" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> ``` 3. 解决导入时的问题 有时候可能会遇到导入时的错误,比如依赖版本不兼容、下载速度慢等。这时候可以尝试以下方解决问题: - 更新Gradle版本 - 检查依赖关系版本是否正确 - 修改Gradle的下载镜像源加速下载 - 使用Proxy或VPN提高下载速度 在使用第三方库时,我们需要注意一些细节,比如要遵守的许可证、避免的冲突等。同时,不仅要会使用第三方库,还要学会如何开发和分享自己的,这样才能成为一名优秀的Android开发者。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

索子也敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值