RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / user-378629

Ivan's questions

Martin Hope
Ivan
Asked: 2020-05-08 02:15:09 +0000 UTC

无法将文件写入外部存储

  • 0

我正在尝试将图片写入手机的外部存储器(外部存储),但未创建文件夹和文件本身。在一台设备上一切正常,但在另一台设备上却没有,写入访问被拒绝。它可以在其上运行,有一个版本的 sdk 25,另一个版本是 29。

java.io.FileNotFoundException:/storage/emulated/0/1588875980977.jpg:打开失败:EACCES(权限被拒绝)

private fun checkPermission() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        if (ContextCompat.checkSelfPermission(this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, arrayOf(android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.Manifest.permission.READ_EXTERNAL_STORAGE), 100)
        }
    }
}

override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
    if (requestCode == 100) {
        if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED && grantResults[1] == PackageManager.PERMISSION_GRANTED) {
            settings.edit().putBoolean("save", true).apply()
        } else {
            settings.edit().putBoolean("save", false).apply()
        }
    }
}

private fun getImageUriFromBitmap(bitmap: Bitmap?): Uri{
    val path = Environment.getExternalStorageDirectory().toString()
    val file = File(path,System.currentTimeMillis().toString() + ".jpg")
    val output = FileOutputStream(file)
    bitmap!!.compress(Bitmap.CompressFormat.JPEG, 100, output)
    output.flush()
    output.close()
    return Uri.fromFile(file)
}
android
  • 1 个回答
  • 10 Views
Martin Hope
Ivan
Asked: 2020-05-03 04:34:08 +0000 UTC

RecyclerView 随机播放项目

  • 0

我做了一个RecyclerView,如果里面有很多元素,那么它会混合这些元素。可能是什么问题呢 ?

inner class AboutUsAdapter: RecyclerView.Adapter<AboutUsAdapter.ViewHolder>() {

        inner class ViewHolder (view: View) : RecyclerView.ViewHolder(view){
            var imageView = view.findViewById<ImageView>(R.id.image_show)
            var name = view.findViewById<TextView>(R.id.name)
            var subtitle = view.findViewById<TextView>(R.id.sub_text)
            val ad = view.findViewById<TextView>(R.id.ad_text)
        }

        override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
            return ViewHolder(LayoutInflater.from(applicationContext).inflate(R.layout.about_us_element, parent, false))
        }

        override fun getItemCount(): Int {
            return texts.size
        }

        override fun onBindViewHolder(holder: ViewHolder, position: Int) {
            holder.name.text = texts[position]
            holder.subtitle.text = subtitles[position]
            if(position == 0){
                holder.ad.text = ""
            }
            if (position == 0 || position == 1){
                holder.imageView.setImageBitmap(applicationContext.resources.getDrawable(R.mipmap.ic_launcher).toBitmap())
            } else {
                holder.imageView.setImageBitmap(getPicFromAsset(files[position - 2]))
            }
            holder.itemView.setOnClickListener {
                val sound: MediaPlayer = MediaPlayer.create(applicationContext, R.raw.simple_tap)
                sound.isLooping = false
                sound.setOnCompletionListener {
                    when (position) {
                        0 -> {
                            if (showAd) {
                                mInterstitialAd.adListener = object : AdListener() {
                                    val adIntent = Intent(applicationContext, ChooseImage::class.java)
                                    override fun onAdOpened() {
                                    }

                                    override fun onAdClosed() {
                                        adIntent.putExtra("bundle",extras)
                                        startActivity(adIntent)
                                        val ad = AdRequest.Builder()
                                                .addNetworkExtrasBundle(AdMobAdapter::class.java, extras)
                                                .build()
                                        mInterstitialAd.loadAd(ad)
                                    }
                                }
                                if (mInterstitialAd.isLoaded) {
                                    mInterstitialAd.show()
                                } else {
                                    val intent = Intent(applicationContext, ChooseImage::class.java)
                                    intent.putExtra("bundle",extras)
                                    startActivity(intent)
                                }
                            } else {
                                val intent = Intent(applicationContext, ChooseImage::class.java)
                                intent.putExtra("bundle",extras)
                                startActivity(intent)
                            }
                        }
                        else -> {
                            val intent = Intent(Intent.ACTION_VIEW, Uri.parse(array[position - 1]))
                            startActivity(intent)
                        }
                    }
                }
                sound.start()
            }
        }
android
  • 2 个回答
  • 10 Views
Martin Hope
Ivan
Asked: 2020-05-02 21:03:37 +0000 UTC

下载 Admob 广告

  • 0

如何加载广告,以免它们减慢应用程序的速度。我确信 loadAd 方法会减慢下载速度。我能做些什么来防止这种情况发生?

        object : AsyncTask<Void?, Void?, Void?>() {
            var adRequest: AdRequest? = null
            override fun onPostExecute(aVoid: Void?) {
                super.onPostExecute(aVoid)
                    mInterstitialAd = InterstitialAd(applicationContext)
                    mInterstitialAd.adUnitId = AD_ID
                    mInterstitialAd.loadAd(adRequest)
                    mAdView.loadAd(adRequest)
            }
            override fun doInBackground(vararg p0: Void?): Void? {
                adRequest = if (isPersonalized) {
                    AdRequest.Builder().build()
                } else {
                    extras.putString("npa", "1")
                    AdRequest.Builder()
                        .addNetworkExtrasBundle(AdMobAdapter::class.java, extras)
                        .build()
                }
                return null
            }
        }.execute()
android-studio
  • 1 个回答
  • 10 Views
Martin Hope
Ivan
Asked: 2020-04-23 00:12:39 +0000 UTC

GridView 加载缓慢

  • 0

我正在尝试实现一个显示资产照片的 GridView。一切正常,但滚动时,图片出现延迟。你会有什么建议和建议?

inner class ImageAdapter(private val mContext: Context) : BaseAdapter() {
        private val am: AssetManager = mContext.assets
        private val files: Array<String>? = am.list("img")

        override fun getCount(): Int {
            return files!!.size
        }

        override fun getItem(position: Int): Any? {
            return null
        }

        override fun getItemId(position: Int): Long {
            return 0
        }

        override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
            var convertView = convertView
            if (convertView == null) {
                val layoutInflater = LayoutInflater.from(mContext)
                convertView = layoutInflater.inflate(R.layout.choose_element, null)
            }
            val imageView = convertView!!.findViewById<ImageView>(R.id.gridImageview)
            imageView.post {
                object : AsyncTask<Void?, Void?, Void?>() {
                    private var bitmap: Bitmap? = null
                    override fun onPostExecute(aVoid: Void?) {
                        super.onPostExecute(aVoid)
                        imageView.setImageBitmap(bitmap)
                    }

                    override fun doInBackground(vararg p0: Void?): Void? {
                        if (!listId.contains(position)) {
                            bitmap = getPicFromAsset(imageView, files!![position])
                            list.add(bitmap!!)
                            listId.add(position)
                        } else {
                            bitmap = list[position]
                        }
                        return null
                    }
                }.execute()
            }
            return convertView
        }

        private fun getPicFromAsset(imageView: ImageView, assetName: String): Bitmap? {
            val targetW = imageView.width
            val targetH = imageView.height
            return if (targetW == 0 || targetH == 0) {
                null
            } else try {
                val `is` = am.open("img/$assetName")
                val bmOptions = BitmapFactory.Options()
                bmOptions.inJustDecodeBounds = true
                BitmapFactory.decodeStream(`is`, Rect(-1, -1, -1, -1), bmOptions)
                val photoW = bmOptions.outWidth
                val photoH = bmOptions.outHeight
                val scaleFactor = (photoW / targetW).coerceAtMost(photoH / targetH)
                `is`.reset()
                bmOptions.inJustDecodeBounds = false
                bmOptions.inSampleSize = scaleFactor
                bmOptions.inPurgeable = true
                BitmapFactory.decodeStream(`is`, Rect(-1, -1, -1, -1), bmOptions)
            } catch (e: IOException) {
                FirebaseCrash.report(e); // Generate report
                e.printStackTrace()
                null
            }
        }
    }
android
  • 1 个回答
  • 10 Views

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5