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. 7432
      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>
</DBN-SQL>
<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" />
</JetCodeStyleSettings>
<MarkdownNavigatorCodeStyleSettings>

@ -5,9 +5,9 @@
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="testRunner" value="GRADLE" />
<option name="distributionType" value="LOCAL" />
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="gradleHome" value="/Developer/gradle-5.1.1" />
<option name="gradleJvm" value="1.8" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
@ -15,7 +15,6 @@
<option value="$PROJECT_DIR$/nsfw" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
</GradleProjectSettings>
</option>
</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.Color
import android.widget.TextView
import android.widget.Toast
import androidx.recyclerview.widget.GridLayoutManager
import com.bumptech.glide.Glide
import com.bumptech.glide.load.engine.DiskCacheStrategy
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.viewholder.BaseViewHolder
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 kotlin.random.Random
class MainActivity : BaseActivity() {
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.adapter =
object : BaseQuickAdapter<MyNSFWBean, BaseViewHolder>(R.layout.item_main) {
@SuppressLint("SetTextI18n")
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 {
//异步方式
NSFWHelper.getNSFWScore(item.bitmap) {
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"))
item.apply {
Glide.with(this@MainActivity).load("file:///android_asset/${path}")
.diskCacheStrategy(DiskCacheStrategy.ALL)
.into(holder.getView(R.id.iv))
holder.getView<TextView>(R.id.tv).let { iv ->
iv.text =
"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 {
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 ->
adapter.setAnimationWithDefault(BaseQuickAdapter.AnimationType.ScaleIn)
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
import android.graphics.Bitmap
import java.lang.Exception
import java.nio.ByteBuffer
@ -27,3 +28,5 @@ fun Boolean.assetBoolean(onTrue: ()-> Unit,onFalse: ()-> Unit){
class NSFWException(str:String):Exception(str)
data class CovertBitmapResultBean(val imgData: ByteBuffer,val exceTime:Long)
fun Bitmap.getNsfwScore() = NSFWHelper.getNSFWScore(this)

Loading…
Cancel
Save