应狼友要求,加入网络图片测试通道。

pull/34/head
赵文文 5 years ago
parent e6d8dd6bd3
commit 8fb0fe4d4e
  1. 2
      .idea/gradle.xml
  2. 11
      app/build.gradle
  3. 25
      app/src/main/AndroidManifest.xml
  4. 43
      app/src/main/java/com/example/open_nsfw_android/Main2Activity.kt
  5. 8
      app/src/main/java/com/example/open_nsfw_android/MainActivity.kt
  6. 18
      app/src/main/res/layout/activity_main.xml
  7. 51
      app/src/main/res/layout/activity_main2.xml
  8. BIN
      app/src/main/res/mipmap-xhdpi/a.png
  9. 3
      app/src/main/res/values/dimens.xml
  10. 1
      app/src/main/res/values/strings.xml
  11. 9
      app/src/main/res/values/styles.xml

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings"> <component name="GradleSettings">
<option name="linkedExternalProjectsSettings"> <option name="linkedExternalProjectsSettings">
<GradleProjectSettings> <GradleProjectSettings>
<option name="testRunner" value="PLATFORM" />
<option name="distributionType" value="LOCAL" /> <option name="distributionType" value="LOCAL" />
<option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome" value="/Developer/gradle-5.1.1" /> <option name="gradleHome" value="/Developer/gradle-5.1.1" />

@ -15,7 +15,7 @@ android {
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
} }
buildTypes { buildTypes {
debug{ debug {
minifyEnabled false // minifyEnabled false //
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
} }
@ -29,6 +29,13 @@ android {
sourceCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8
} }
// To inline the bytecode built with JVM target 1.8 into
// bytecode that is being built with JVM target 1.6. (e.g. navArgs)
kotlinOptions {
jvmTarget = "1.8"
}
} }
dependencies { dependencies {
@ -37,6 +44,8 @@ dependencies {
implementation 'com.android.support:appcompat-v7:28.0.0' implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3' implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:design:28.0.0' implementation 'com.android.support:design:28.0.0'
implementation 'android.arch.navigation:navigation-fragment-ktx:1.0.0'
implementation 'android.arch.navigation:navigation-ui-ktx:1.0.0'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2' androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

@ -1,16 +1,21 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.open_nsfw_android"> package="com.example.open_nsfw_android">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
android:allowBackup="true" <uses-permission android:name="android.permission.INTERNET" />
android:icon="@mipmap/icon"
android:label="@string/app_name"
android:roundIcon="@mipmap/icon"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<application
android:allowBackup="true"
android:icon="@mipmap/a"
android:label="@string/app_name"
android:roundIcon="@mipmap/a"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".Main2Activity"
android:label="@string/title_activity_main2"></activity>
<activity android:name=".MainActivity"> <activity android:name=".MainActivity">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />

@ -0,0 +1,43 @@
package com.example.open_nsfw_android
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.os.Bundle
import android.support.design.widget.Snackbar
import android.support.v7.app.AppCompatActivity
import android.util.Log
import android.widget.Toast
import com.bumptech.glide.Glide
import com.zwy.nsfw.kotlin.getNsfwScore
import kotlinx.android.synthetic.main.activity_main2.*
class Main2Activity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main2)
bt.setOnClickListener {
if (et.text.toString().isNotBlank()) {
Thread(Runnable {
try {
val file = Glide.with(this)
.load(et.text.toString())
.downloadOnly(120, 120).get()
val nsfwBean = file.getNsfwScore(assets)
runOnUiThread {
iv.setImageBitmap(BitmapFactory.decodeFile(file.path))
tv.text = "nsfw:${nsfwBean.nsfw} \n sfw:${nsfwBean.sfw} "
}
} catch (e: Exception) {
runOnUiThread {
Toast.makeText(this, "图片载入失败,请重试", 0).show()
}
}
}).start()
}
}
}
}

@ -11,7 +11,10 @@ import android.support.v4.app.ActivityCompat
import android.support.v4.content.ContextCompat import android.support.v4.content.ContextCompat
import android.support.v7.app.AppCompatActivity import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.LinearLayoutManager import android.support.v7.widget.LinearLayoutManager
import android.util.Log
import android.view.View import android.view.View
import android.widget.Toast
import com.bumptech.glide.Glide
import com.luck.picture.lib.PictureSelector import com.luck.picture.lib.PictureSelector
import com.luck.picture.lib.config.PictureConfig import com.luck.picture.lib.config.PictureConfig
import com.luck.picture.lib.config.PictureMimeType import com.luck.picture.lib.config.PictureMimeType
@ -49,6 +52,7 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
//进行授权 //进行授权
ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 1); ActivityCompat.requestPermissions(this, arrayOf(Manifest.permission.WRITE_EXTERNAL_STORAGE), 1);
} }
} }
override fun onClick(v: View) { override fun onClick(v: View) {
@ -71,6 +75,9 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
.previewEggs(true)// 预览图片时 是否增强左右滑动图片体验(图片滑动一半即可看到上一张是否选中) true or false .previewEggs(true)// 预览图片时 是否增强左右滑动图片体验(图片滑动一半即可看到上一张是否选中) true or false
.forResult(0x01);//结果回调onActivityResult code .forResult(0x01);//结果回调onActivityResult code
} }
R.id.bt_sc_from_internet ->{
startActivity(Intent(this,Main2Activity::class.java))
}
} }
} }
@ -88,6 +95,7 @@ class MainActivity : AppCompatActivity(), View.OnClickListener {
private fun initClickListener() { private fun initClickListener() {
bt_sc_assets.setOnClickListener(this) bt_sc_assets.setOnClickListener(this)
bt_sc_from_other.setOnClickListener(this) bt_sc_from_other.setOnClickListener(this)
bt_sc_from_internet.setOnClickListener(this)
} }
private fun initAdapter() { private fun initAdapter() {

@ -13,23 +13,33 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:textSize="16sp" android:textSize="12sp"
android:id="@+id/bt_sc_assets" android:id="@+id/bt_sc_assets"
android:gravity="center" android:gravity="center"
android:layout_gravity="center" android:layout_gravity="center"
android:padding="20dp" android:padding="15dp"
android:text="@string/str_bt1" /> android:text="@string/str_bt1" />
<Button <Button
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_weight="1" android:layout_weight="1"
android:textSize="16sp" android:textSize="14sp"
android:id="@+id/bt_sc_from_other" android:id="@+id/bt_sc_from_other"
android:gravity="center" android:gravity="center"
android:layout_gravity="center" android:layout_gravity="center"
android:padding="20dp" android:padding="15dp"
android:text="从相册选取" /> android:text="从相册选取" />
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="14sp"
android:id="@+id/bt_sc_from_internet"
android:gravity="center"
android:layout_gravity="center"
android:padding="15dp"
android:text="识别网络图片" />
</LinearLayout> </LinearLayout>
<TextView <TextView

@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".Main2Activity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<EditText
android:id="@+id/et"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:background="@null"
android:hint="粘贴网络图片路径"
android:padding="15dp" />
<Button
android:id="@+id/bt"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="0.3"
android:text="识别" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#504d4d4d" />
<TextView
android:id="@+id/tv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="#FA3C00"
android:padding="20dp"
android:text="这里显示检测结果" />
<ImageView
android:id="@+id/iv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"/>
</LinearLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

@ -0,0 +1,3 @@
<resources>
<dimen name="fab_margin">16dp</dimen>
</resources>

@ -1,4 +1,5 @@
<resources> <resources>
<string name="app_name">离线鉴黄</string> <string name="app_name">离线鉴黄</string>
<string name="str_bt1">识别Assets下图片</string> <string name="str_bt1">识别Assets下图片</string>
<string name="title_activity_main2">网络图片识别,你懂的</string>
</resources> </resources>

@ -8,4 +8,13 @@
<item name="colorAccent">@color/colorAccent</item> <item name="colorAccent">@color/colorAccent</item>
</style> </style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources> </resources>

Loading…
Cancel
Save