毛玻璃之android.support.v8.renderscript.RSRuntimeException

最近看到bilibili的番剧详情页面下的背景图有高斯模糊的效果,很好看,于是也将自己个人项目的某个背景图调成模糊的效果,用的是500px的500px-android-blur
地址:https://github.com/500px/500px-android-blur

500px效果

在集成的时候,android.support.v8库找不到。这个renderscript-v8.jar包需要从sdk的目录下手动拷贝到工程的libs下面,因为用androidstudio2.1.1版本,sdk编译工具是23.0.3的版本

renderscript所在目录

然后将jar包导入到androidstudio工程libs下面,出现了下面的错误:

Caused by: android.support.v8.renderscript.RSRuntimeException: Error loading RS jni library: java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad in "/data/app/com.papi.player-2/lib/arm/librsjni.so" Support lib API: 2301
                                                                   at android.support.v8.renderscript.RenderScript.internalCreate(RenderScript.java:1358)
                                                                   at android.support.v8
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 Android 中对网络图片应用毛玻璃效果,你可以使用 Glide 和 RenderScript 来实现。下面是一个示例代码: 1. 首先,在你的 Android 项目的 `build.gradle` 文件中添加 Glide 的依赖: ```groovy dependencies { // ... implementation 'com.github.bumptech.glide:glide:4.12.0' annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0' } ``` 2. 创建一个 `GlideBlurTransformation` 类来实现毛玻璃效果的 Glide 转换: ```java import android.content.Context; import android.graphics.Bitmap; import android.renderscript.Allocation; import android.renderscript.Element; import android.renderscript.RenderScript; import android.renderscript.ScriptIntrinsicBlur; import com.bumptech.glide.load.engine.bitmap_recycle.BitmapPool; import com.bumptech.glide.load.resource.bitmap.BitmapTransformation; import java.security.MessageDigest; public class GlideBlurTransformation extends BitmapTransformation { private static final String ID = "com.example.app.GlideBlurTransformation"; private static final byte[] ID_BYTES = ID.getBytes(CHARSET); private Context context; private float radius; public GlideBlurTransformation(Context context, float radius) { this.context = context.getApplicationContext(); this.radius = radius; } @Override protected Bitmap transform(BitmapPool bitmapPool, Bitmap bitmap, int outWidth, int outHeight) { Bitmap blurredBitmap = bitmap.copy(bitmap.getConfig(), true); RenderScript renderScript = RenderScript.create(context); Allocation inputAllocation = Allocation.createFromBitmap(renderScript, bitmap, Allocation.MipmapControl.MIPMAP_FULL, Allocation.USAGE_SHARED); Allocation outputAllocation = Allocation.createTyped(renderScript, inputAllocation.getType()); ScriptIntrinsicBlur blurScript = ScriptIntrinsicBlur.create(renderScript, Element.U8_4(renderScript)); blurScript.setInput(inputAllocation); blurScript.setRadius(radius); blurScript.forEach(outputAllocation); outputAllocation.copyTo(blurredBitmap); renderScript.destroy(); return blurredBitmap; } @Override public boolean equals(Object o) { return o instanceof GlideBlurTransformation; } @Override public int hashCode() { return ID.hashCode(); } @Override public void updateDiskCacheKey(MessageDigest messageDigest) { messageDigest.update(ID_BYTES); } } ``` 3. 在你的代码中,使用 Glide 来加载网络图片并应用毛玻璃转换: ```java String imageUrl = "https://example.com/image.jpg"; ImageView imageView = findViewById(R.id.imageView); float radius = 10f; // 模糊半径,可以根据需要调整 Glide.with(this) .load(imageUrl) .transform(new GlideBlurTransformation(this, radius)) .into(imageView); ``` 在上述代码中,我们使用 Glide 来加载网络图片,并通过 `GlideBlurTransformation` 类将其应用毛玻璃转换。你可以根据需要调整模糊半径 `radius` 的值。 请确保在你的 AndroidManifest.xml 文件中添加相应的网络访问权限。 希望以上信息对你有帮助!如果你还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值