程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Picasso 未在 ImageView 上加载图像大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决PiCasso 未在 ImageView 上加载图像?

开发过程中遇到PiCasso 未在 ImageView 上加载图像的问题如何解决?下面主要结合日常开发的经验,给出你关于PiCasso 未在 ImageView 上加载图像的解决方法建议,希望对你解决PiCasso 未在 ImageView 上加载图像有所启发或帮助;

我正在尝试在 RecyclerVIEw 元素中加载图像:

<?xml version="1.0" enCoding="utf-8"?>
<relativeLayout xmlns:androID="http://scheR_786_11845@as.androID.com/apk/res/androID"
androID:layout_wIDth="match_parent"
androID:layout_height="wrap_content"
xmlns:app="http://scheR_786_11845@as.androID.com/apk/res-auto">
<androIDx.cardvIEw.Widget.CardVIEw
    androID:layout_wIDth="match_parent"
    androID:layout_height="wrap_content"
    app:cardCornerRadius="20dp"
    androID:ID="@+ID/cardvIEw"
    androID:layout_margintop="20dp">

    <relativeLayout
        androID:layout_wIDth="match_parent"
        androID:layout_height="wrap_content"
        androID:ID="@+ID/innerrl"
        androID:layout_margintop="20dp"
        androID:layout_marginBottom="20dp">

        <ImageVIEw
            androID:layout_wIDth="50dp"
            androID:layout_height="50dp"
            androID:layout_alignParentStart="true"
            androID:layout_centerVertical="true"
            androID:layout_marginStart="20dp"
            androID:ID="@+ID/thumbnail"/>

        <TextVIEw
            androID:layout_wIDth="wrap_content"
            androID:layout_height="wrap_content"
            androID:layout_centerHorizontal="true"
            androID:layout_alignParenttop="true"
            androID:layout_margintop="10dp"
            androID:ID="@+ID/name"/>

        <TextVIEw
            androID:layout_wIDth="wrap_content"
            androID:layout_height="wrap_content"
            androID:ID="@+ID/desc"
            androID:layout_toEndOf="@+ID/thumbnail"
            androID:layout_marginStart="20dp"
            androID:layouT_Below="@+ID/name"/>

    </relativeLayout>
</androIDx.cardvIEw.Widget.CardVIEw>



</relativeLayout>

RecyclerVIEw 适配器:

class RecyclerAdapter : RecyclerVIEw.Adapter<RecyclerAdapter.VIEwHolder>() {
lateinit var ctx:Context
lateinit var superHeroes:List<SuperHeroe>

fun RecyclerAdapter(ListaHeroes:List<SuperHeroe>,ctx:Context){
    this.superHeroes=ListaHeroes
    this.ctx=ctx
}
overrIDe fun onCreateVIEwHolder(parent: VIEwGroup,vIEwType: int): VIEwHolder {
    val lay@R_607_9981@nflater = Lay@R_607_9981@nflater.from(parent.context)
    return VIEwHolder(lay@R_607_9981@nflater.inflate(R.layout.superhero_layout,parent,falsE))
}

overrIDe fun onBindVIEwHolder(holder: RecyclerAdapter.VIEwHolder,position: int) {
    val item = superHeroes.get(position)
    holder.bind(item,ctX)
}

overrIDe fun getItemCount(): Int {
    return superHeroes.size
}

class VIEwHolder(vIEw: VIEw) : RecyclerVIEw.VIEwHolder(vIEw) {
    val superheroname = vIEw.findVIEwByID(R.ID.Name) as TextVIEw
    val desc = vIEw.findVIEwByID(R.ID.desc) as TextVIEw
    val avatar = vIEw.findVIEwByID(R.ID.thumbnail) as ImageVIEw
    fun bind(superhero:SuperHeroe,context: Context){
        superheroname.text = superhero.nombre
        desc.text = superhero.desc
        loadUrl(superhero.imagen,avatar,context)
    }
    fun loadUrl(url: String,target:ImageVIEw,ctx:Context) {
        println(url)
        PiCasso.with(ctX).load(url).into(target)
    }
}
}

毕加索的版本是:

implementation 'com.squareup.piCasso:piCasso:2.5.2'

ImageVIEw 中没有加载任何图像,但我在 loadUrl 函数中添加了一个日志,如果我点击链接,图像会显示在我的浏览器中。其余元素(名称和描述)显示正确。我做错了什么?

谢谢。

解决方法

您是否在清单中定义了互联网权限? 像这样,

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
<!-- JS,Popper.js,and jQuery -->
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaizap3H66lZH81PoYlFhbGU+6BZP6G7niu735Sk7lN" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>


<div class="container">
  <div class="row">
    <form class="bg-dark col-sm-6 py-3">
      <div class="form-group row">
        <label for="id" class="col-sm-3 col-md-4 col-form-label text-white">id</label>
        <div class="col-sm-9 col-md-8">
          <input id="id" name="id" type="text" class="form-control">
        </div>
      </div>
      <div class="form-group row">
        <div class="col offset-sm-3 offset-md-4">
          <div class="d-flex justify-content-between">
            <button type="button" class="btn btn-priMary">A</button>
            <button type="button" class="btn btn-warning">B</button>
            <button type="button" class="btn btn-priMary">C</button>
            <button type="button" class="btn btn-danger">D</button>
            <button type="button" class="btn btn-info">E</button>
          </div>
        </div>
      </div>
      <div class="form-group row">
        <div class="col offset-sm-3 offset-md-4">
          <div class="d-flex justify-content-between vertical-mobile">
            <button type="button" class="btn btn-priMary">A</button>
            <button type="button" class="btn btn-warning">B</button>
            <button type="button" class="btn btn-priMary">C</button>
            <button type="button" class="btn btn-danger">D</button>
            <button type="button" class="btn btn-info">E</button>
          </div>
        </div>
      </div>
      <div class="form-group row">
        <div class="col offset-sm-3 offset-md-4">
          <div class="btn-group custom-btn-group">
            <button type="button" class="btn btn-priMary">A</button>
            <button type="button" class="btn btn-warning">B</button>
            <button type="button" class="btn btn-priMary">C</button>
            <button type="button" class="btn btn-danger">D</button>
            <button type="button" class="btn btn-info">E</button>
          </div>
        </div>
      </div>
    </form>
  </div>
</div>

或者也检查网络安全配置:-

  • 从 Android 9(API 级别 28)开始,明文支持被禁用 默认情况下。

您可以尝试任何选项

1. 尝试使用“https://”而不是“http://”来访问 URL

2. 创建文件 res/xml/network_security_config.xml -

<uses-permission android:name="android.permission.INTERNET" />

将此文件添加到清单中的应用程序标签下,

 <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
      <domain-config cleartextTrafficPermitted="true">
       </domain-config>
    </network-security-config>

3. 使用 usesCleartextTraffic

像这样在清单中的应用程序标签下添加这个,

<application
  android:networkSecurityConfig="@xml/network_security_config">    
</application>

大佬总结

以上是大佬教程为你收集整理的Picasso 未在 ImageView 上加载图像全部内容,希望文章能够帮你解决Picasso 未在 ImageView 上加载图像所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。