CircleImageView 不显示图像
Posted
技术标签:
【中文标题】CircleImageView 不显示图像【英文标题】:CircleImageView not showing the image 【发布时间】:2020-06-07 17:35:11 【问题描述】:即使在将源设置为我的 circulerView 之后,它也没有显示任何图像,但是当我使用简单的 ImageView 时它可以正常工作。 我有 cardview 和 constrainLayout ,我正试图把我的 CirculerImageView 放在上面。 此外,当我设置背景时,它会显示图像,但以方形形式显示。 为什么我的 CirculerView 不工作? 我应该创建一个新的原始环形文件吗?
请帮帮我。
我的 .xml 文件
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:map="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_
android:layout_
android:id="@+id/constrain_layout"
android:orientation="vertical">
<androidx.cardview.widget.CardView
android:id="@+id/driverInfo"
android:layout_
android:layout_
android:layout_marginBottom="8dp"
android:background="@drawable/rectangle"
map:layout_constraintBottom_toBottomOf="@+id/map"
map:layout_constraintEnd_toEndOf="@+id/map"
map:layout_constraintStart_toStartOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_
android:layout_>
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/imageView2"
android:layout_
android:layout_
android:layout_marginStart="20dp"
android:layout_marginTop="30dp"
android:drawingCacheQuality="high"
map:layout_constraintStart_toStartOf="parent"
map:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@drawable/userimage" />
<RatingBar
android:id="@+id/ratingBar"
style="?android:attr/ratingBarStyleSmall"
android:layout_
android:layout_
android:layout_marginStart="10dp"
android:layout_marginTop="62dp"
android:isIndicator="true"
android:numStars="5"
android:stepSize="0.1"
map:layout_constraintStart_toEndOf="@+id/imageView2"
map:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView4"
android:layout_
android:layout_
android:layout_marginStart="10dp"
android:layout_marginTop="38dp"
android:text="Vaibhav"
android:textColor="#323643"
map:layout_constraintStart_toEndOf="@+id/imageView2"
map:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/callDriver"
android:layout_
android:layout_
android:layout_marginStart="62dp"
android:layout_marginTop="37dp"
android:background="@drawable/buttonrect"
android:text="Call Driver"
android:textColor="#FFFFFF"
android:textSize="14sp"
map:layout_constraintStart_toEndOf="@+id/ratingBar"
map:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView>
<fragment
android:id="@+id/map"
android:name="com.google.android.gms.maps.SupportMapFragment"
android:layout_
android:layout_
map:layout_constraintBottom_toBottomOf="parent"
map:layout_constraintEnd_toEndOf="parent"
map:layout_constraintHorizontal_bias="1.0"
map:layout_constraintStart_toStartOf="parent"
map:layout_constraintTop_toTopOf="parent"
map:layout_constraintVertical_bias="1.0"
tools:context=".HomeActivity" />
<EditText
android:id="@+id/myLocation"
android:layout_
android:layout_
android:layout_marginTop="16dp"
android:background="@drawable/edittextlocation"
android:drawingCacheQuality="high"
android:ems="10"
android:hint="My Location"
android:inputType="textPersonName"
android:paddingStart="40dp"
android:textSize="14sp"
android:viewportWidth="335"
android:viewportHeight="48"
map:layout_constraintEnd_toEndOf="@+id/map"
map:layout_constraintStart_toStartOf="@+id/map"
map:layout_constraintTop_toBottomOf="@+id/appBarLayout" />
<EditText
android:id="@+id/destination"
android:layout_
android:layout_
android:background="@drawable/destination"
android:drawingCacheQuality="high"
android:ems="10"
android:hint="Destination Please! ?"
android:inputType="textPersonName"
android:paddingStart="40dp"
android:textSize="14sp"
map:layout_constraintEnd_toEndOf="@+id/map"
map:layout_constraintStart_toStartOf="@+id/map"
map:layout_constraintTop_toBottomOf="@+id/myLocation" />
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBarLayout"
android:layout_
android:layout_
map:layout_constraintEnd_toEndOf="parent"
map:layout_constraintStart_toStartOf="parent"
map:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.Toolbar
android:id="@+id/main_toolbar"
android:layout_
android:layout_
android:layout_gravity="center">
<TextView
android:id="@+id/toolbar_title"
android:layout_
android:layout_
android:layout_gravity="center"
android:textColor="#323643"
android:textSize="18dp" />
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
【问题讨论】:
你是否实现了这一行到依赖实现'de.hdodenhof:circleimageview:3.1.0'? 您如何使用 glide 或 picasso 或任何其他方式将图像加载到圆形图像视图 @ManiKandan 是的,我实现了。 @SilverskyTechnology 现在我只处理 XML 代码,我正在使用 srcCompat 加载图像,你可以在 XML 代码中看到它。 你也可以在没有circleimageview库的情况下使用glide来圈出图片 【参考方案1】:只需替换-:
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/imageView2"
android:layout_
android:layout_
android:layout_marginStart="20dp"
android:layout_marginTop="30dp"
android:drawingCacheQuality="high"
map:layout_constraintStart_toStartOf="parent"
map:layout_constraintTop_toTopOf="parent"
tools:srcCompat="@drawable/userimage" />
与-:
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/imageView2"
android:layout_
android:layout_
android:layout_marginStart="20dp"
android:layout_marginTop="30dp"
android:drawingCacheQuality="high"
map:layout_constraintStart_toStartOf="parent"
map:layout_constraintTop_toTopOf="parent"
android:src="@drawable/userimage" />
android:src="@drawable/userimage"
【讨论】:
使用tools:srcCompat
只会在布局编辑器中显示图像,您通常使用tools:...
用于在编辑时需要图像或文本等以供参考但实际上并不想要它会在实际运行时显示在应用程序中。【参考方案2】:
尝试使用普通 ImageView 并使用以下代码动态更改形状。
profile = new ImageView(ProfileActivity.this);
Bitmap bitmap = BitmapFactory.decodeResource(this.getResources(), R.drawable.avatar);
Bitmap circularBitmap = ImageConverter.getRoundedCroppedBitmap(bitmap, 100);
profile.setImageBitmap(circularBitmap);
【讨论】:
【参考方案3】:在java文件中试试这个代码不需要使用外部库来制作圆形图像视图
Glide.with(context)
.load(url)
.apply(RequestOptions.circleCropTransform())
.into(imageView);
【讨论】:
以上是关于CircleImageView 不显示图像的主要内容,如果未能解决你的问题,请参考以下文章
在 CircleImageView 中缩放不同大小的图像的问题
如何将 circleimageview 保持在 CardView 之前?在约束布局?