update some code of demo.

pull/34/head
devzwy 3 years ago
parent 1fe089971c
commit f21f989dac
  1. 16
      .idea/codeStyles/Project.xml
  2. 5
      .idea/gradle.xml
  3. BIN
      app/src/main/assets/img/aaaa.png
  4. BIN
      app/src/main/assets/img/test.webp
  5. BIN
      app/src/main/assets/img/test2.webp
  6. BIN
      app/src/main/assets/img/test3.webp
  7. BIN
      app/src/main/assets/img/test4.webp
  8. BIN
      app/src/main/assets/img/test5.webp
  9. BIN
      app/src/main/assets/img/test6.webp
  10. 3718
      app/src/main/java/com/zww/sample/KtApp.kt
  11. 95
      app/src/main/java/com/zww/sample/MainActivity.kt
  12. 7434
      app/src/main/java/com/zww/sample/Te.kt
  13. 3
      nsfw/src/main/java/io/github/devzwy/nsfw/utils.kt

@ -25,22 +25,6 @@
</formatting-settings> </formatting-settings>
</DBN-SQL> </DBN-SQL>
<JetCodeStyleSettings> <JetCodeStyleSettings>
<option name="PACKAGES_TO_USE_STAR_IMPORTS">
<value>
<package name="java.util" alias="false" withSubpackages="false" />
<package name="kotlinx.android.synthetic" alias="false" withSubpackages="true" />
<package name="io.ktor" alias="false" withSubpackages="true" />
</value>
</option>
<option name="PACKAGES_IMPORT_LAYOUT">
<value>
<package name="" alias="false" withSubpackages="true" />
<package name="java" alias="false" withSubpackages="true" />
<package name="javax" alias="false" withSubpackages="true" />
<package name="kotlin" alias="false" withSubpackages="true" />
<package name="" alias="true" withSubpackages="true" />
</value>
</option>
<option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" /> <option name="CODE_STYLE_DEFAULTS" value="KOTLIN_OFFICIAL" />
</JetCodeStyleSettings> </JetCodeStyleSettings>
<MarkdownNavigatorCodeStyleSettings> <MarkdownNavigatorCodeStyleSettings>

@ -5,9 +5,9 @@
<option name="linkedExternalProjectsSettings"> <option name="linkedExternalProjectsSettings">
<GradleProjectSettings> <GradleProjectSettings>
<option name="testRunner" value="GRADLE" /> <option name="testRunner" value="GRADLE" />
<option name="distributionType" value="LOCAL" /> <option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" /> <option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome" value="/Developer/gradle-5.1.1" /> <option name="gradleJvm" value="1.8" />
<option name="modules"> <option name="modules">
<set> <set>
<option value="$PROJECT_DIR$" /> <option value="$PROJECT_DIR$" />
@ -15,7 +15,6 @@
<option value="$PROJECT_DIR$/nsfw" /> <option value="$PROJECT_DIR$/nsfw" />
</set> </set>
</option> </option>
<option name="resolveModulePerSourceSet" value="false" />
</GradleProjectSettings> </GradleProjectSettings>
</option> </option>
</component> </component>

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

File diff suppressed because it is too large Load Diff

@ -5,88 +5,71 @@ import android.graphics.Bitmap
import android.graphics.BitmapFactory import android.graphics.BitmapFactory
import android.graphics.Color import android.graphics.Color
import android.widget.TextView import android.widget.TextView
import android.widget.Toast
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.load.engine.DiskCacheStrategy import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.chad.library.adapter.base.BaseQuickAdapter import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.viewholder.BaseViewHolder import com.chad.library.adapter.base.viewholder.BaseViewHolder
import io.github.devzwy.nsfw.NSFWHelper import io.github.devzwy.nsfw.NSFWHelper
import io.github.devzwy.nsfw.NSFWScoreBean
import io.github.devzwy.nsfw.getNsfwScore
import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.activity_main.*
import kotlin.random.Random import kotlin.random.Random
class MainActivity : BaseActivity() { class MainActivity : BaseActivity() {
override fun initData() { override fun initData() {
if (resources.assets.list(
"img"
).isNullOrEmpty()
) {
Toast.makeText(this, "在assets下放置图片后再运行demo", Toast.LENGTH_SHORT).show()
return
}
mRecyclerView.layoutManager = GridLayoutManager(this, 2) mRecyclerView.layoutManager = GridLayoutManager(this, 2)
mRecyclerView.adapter = mRecyclerView.adapter =
object : BaseQuickAdapter<MyNSFWBean, BaseViewHolder>(R.layout.item_main) { object : BaseQuickAdapter<MyNSFWBean, BaseViewHolder>(R.layout.item_main) {
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
override fun convert(holder: BaseViewHolder, item: MyNSFWBean) { override fun convert(holder: BaseViewHolder, item: MyNSFWBean) {
Glide.with(this@MainActivity).load(item.bitmap)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(holder.getView(R.id.iv))
holder.getView<TextView>(R.id.tv).apply {
//异步方式 item.apply {
NSFWHelper.getNSFWScore(item.bitmap) { Glide.with(this@MainActivity).load("file:///android_asset/${path}")
this.text = .diskCacheStrategy(DiskCacheStrategy.ALL)
"nsfw:${it.nsfwScore}\nsfw:${it.sfwScore}\n扫描耗时:${it.timeConsumingToScanData} ms" .into(holder.getView(R.id.iv))
if (it.nsfwScore > 0.7) {
this.setBackgroundColor(Color.parseColor("#C1FF0000")) holder.getView<TextView>(R.id.tv).let { iv ->
} else if (it.nsfwScore > 0.5) { iv.text =
this.setBackgroundColor(Color.parseColor("#C1FF9800")) "nsfw:${nsfwScoreBean.nsfwScore}\nsfw:${nsfwScoreBean.sfwScore}\n扫描耗时:${nsfwScoreBean.timeConsumingToScanData} ms"
if (nsfwScoreBean.nsfwScore > 0.7) {
iv.setBackgroundColor(Color.parseColor("#C1FF0000"))
} else if (nsfwScoreBean.nsfwScore > 0.5) {
iv.setBackgroundColor(Color.parseColor("#C1FF9800"))
} else { } else {
this.setBackgroundColor(Color.parseColor("#803700B3")) iv.setBackgroundColor(Color.parseColor("#803700B3"))
} }
} }
// //同步方式
// NSFWHelper.getNSFWScore(item.bitmap).let {
// this.text =
// "nsfw:${it.nsfwScore}\nsfw:${it.sfwScore}\n扫描耗时:${it.timeConsumingToScanData} ms"
// if (it.nsfwScore > 0.7) {
// this.setBackgroundColor(Color.parseColor("#C1FF0000"))
// } else if (it.nsfwScore > 0.5) {
// this.setBackgroundColor(Color.parseColor("#C1FF9800"))
// } else {
// this.setBackgroundColor(Color.parseColor("#803700B3"))
// }
// }
} }
} }
}.also { adapter -> }.also { adapter ->
adapter.setAnimationWithDefault(BaseQuickAdapter.AnimationType.ScaleIn) adapter.setAnimationWithDefault(BaseQuickAdapter.AnimationType.ScaleIn)
adapter.isAnimationFirstOnly = false adapter.isAnimationFirstOnly = false
resources.assets.list(
"img"
)?.forEach {
adapter.addData(
MyNSFWBean(
"img/${it}",
BitmapFactory.decodeStream(resources.assets.open("img/${it}"))
.getNsfwScore()
)
)
Thread(Runnable { }
for (i in 1..50) {
BitmapFactory.decodeStream(
resources.assets.open(
"img/${
resources.assets.list(
"img"
)!![Random.nextInt(
1, resources.assets.list(
"img"
)!!.size
)]
}"
)
).also { bitmap ->
runOnUiThread {
adapter.addData(MyNSFWBean(bitmap))
}
}
}
}).start()
} }
} }
@ -96,4 +79,4 @@ class MainActivity : BaseActivity() {
} }
} }
data class MyNSFWBean(val bitmap: Bitmap) data class MyNSFWBean(val path: String, val nsfwScoreBean: NSFWScoreBean)

File diff suppressed because it is too large Load Diff

@ -1,5 +1,6 @@
package io.github.devzwy.nsfw package io.github.devzwy.nsfw
import android.graphics.Bitmap
import java.lang.Exception import java.lang.Exception
import java.nio.ByteBuffer import java.nio.ByteBuffer
@ -27,3 +28,5 @@ fun Boolean.assetBoolean(onTrue: ()-> Unit,onFalse: ()-> Unit){
class NSFWException(str:String):Exception(str) class NSFWException(str:String):Exception(str)
data class CovertBitmapResultBean(val imgData: ByteBuffer,val exceTime:Long) data class CovertBitmapResultBean(val imgData: ByteBuffer,val exceTime:Long)
fun Bitmap.getNsfwScore() = NSFWHelper.getNSFWScore(this)

Loading…
Cancel
Save