原创GitHub地址:
https://github.com/ZhangZiLiX/DouYinVideoDemo
1.build.gradle配置
applyplugin:'com.android.application'
android {
compileSdkVersion28
defaultConfig {
applicationId"com.wd.douyinvideodemo"
minSdkVersion19
targetSdkVersion28
versionCode1
versionName"1.0"
testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"
ndk {
//设置支持的SO库架构
abiFilters'armeabi','armeabi-v7a','x86'
}
}
buildTypes {
release {
minifyEnabledfalse
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'
}
}
compileOptions {//使用表达式时引入
sourceCompatibility1.8
targetCompatibility1.8
}
}
dependencies {
implementation fileTree(include: ['*.jar'],dir:'libs')
implementation'com.android.support:appcompat-v7:28.0.0'
implementation'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation'junit:junit:4.12' androidTestImplementation'com.android.support.test:runner:1.0.2'
androidTestImplementation'com.android.support.test.espresso:espresso-core:3.0.2'
//列表依赖 implementation'com.android.support:recyclerview-v7:28.0.0'
//图片
implementation'com.facebook.fresco:fresco:0.12.0'
//完整版引入
implementation'com.shuyu:GSYVideoPlayer:6.0.3'
implementation project(':lib')//点赞飘心依赖库
}
configurations.all {//解决版本冲突
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group =='com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion'28.0.0'
}
}
}
}
2.AndroidManifest配置
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.wd.douyinvideodemo">
<!-- 请求访问网络状态 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- 请求访问网络 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
>
<!--注意这里 需要设置 横竖屏切换配置 configChanges -->
<activity android:name=".MainActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
3.MainActivity布局 (个别资源没有上传,请根据最下方的图查看需要什么图片等资源文件)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
android:background="@android:color/black"
>
<android.support.v7.widget.RecyclerView
android:id="@+id/recycler"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="25dp"
android:layout_marginTop="35dp"
android:orientation="horizontal"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="16dp"
android:text="推荐"
android:textColor="@android:color/white"
android:textSize="18sp"
android:textStyle="bold"