为什么我的图片无法加载到 Recyclerview 中
Why won't my images not load in Recyclerview
Glide 不会加载我与 recycler view
上的产品链接的图像。图片应该从我的 PHP
MySQL
数据库中提取。不太确定我做错了什么。请帮忙
我尝试了一些在网上找到的解决方案,但 none 对我有用。
private String image;
以上是我的产品列表中的字符串标识符
//loading the image
Glide.with(mCtx)
.load(product.getImage())
.into(holder.imageView);
holder.textViewPlateNumber.setText(product.getPlatenumber());
holder.textView1.setText(product.getMake());
holder.textView2.setText(product.getModel());
holder.textView3.setText(product.getYear());
holder.textViewName.setText(product.getName());
holder.textDate.setText(product.getDate());
holder.recyclerid.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String platenumber = productList.get(position).getPlatenumber();
String make = productList.get(position).getMake();
String model = productList.get(position).getModel();
String year = productList.get(position).getYear();
String name = productList.get(position).getName();
String date = productList.get(position).getDate();
String vin = productList.get(position).getVin();
String displacement = productList.get(position).getDisplacement();
String fueltype = productList.get(position).getFueltype();
String transmission = productList.get(position).getTransmission();
String mileage = productList.get(position).getMileage();
String ownerorcompany =
productList.get(position).getOwnerorcompany();
String homeorcompanyaddress =
productList.get(position).getHomeorcompanyaddress();
String contactnumber =
productList.get(position).getContactnumber();
String emailaddress = productList.get(position).getEmailaddress();
String facebook = productList.get(position).getFacebook();
String image = productList.get(position).getImage();
以上是我用来显示适配器上每个项目图像的代码。
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/imageView"
android:layout_width="0dp"
android:layout_height="0dp"
android:src="@drawable/car_avatar"
app:civ_border_color="@color/cta"
app:civ_border_width="2dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/guideline17"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
以上是图像在我的 xml 文件中的布局方式。保存在我的 php
sql
中的其余项目显示在列表中,除了图像。这是我的 php
文件的样子:
$vehicle = array();
while ($row=mysqli_fetch_array($sql)) {
$temp = array();
$temp['id'] = $row['VehicleID'];
$temp['platenumber'] = $row['PlateNumber'];
$temp['make'] = $row['Make'];
$temp['model'] = $row['Model'];
$temp['year'] = $row['Year'];
$temp['name'] = $row['OwnerorCompany'];
$temp['date'] = $row['AddDate'];
$temp['image'] = $row['vehicleImage'];
$temp['vin'] = $row['Vin'];
$temp['displacement'] = $row['Displacement'];
$temp['fueltype'] = $row['FuelType'];
$temp['transmission'] = $row['Transmission'];
$temp['mileage'] = $row['Mileage'];
$temp['ownerorcompany'] = $row['OwnerorCompany'];
$temp['homeorcompanyaddress'] = $row['HomeorCompanyAddress'];
$temp['contactnumber'] = $row['ContactNumber'];
$temp['emailaddress'] = $row['EmailAddress'];
$temp['facebook'] = $row['FacebookID'];
array_push($vehicle, $temp);
}
echo json_encode($vehicle);
//}
?>
这就是图像在我的数据库中的保存方式:
$photo = $_POST['photo'];
$id=uniqid();
$path = "vehicle_upload/$id.jpeg";
$finalpath = "http://192.168.0.10/widevalueautoInc
2/server/api/".$path;
当我 运行 应用程序时,除了图像未显示在列表中外,一切顺利。这是我用来保存图像和尺寸的 java 代码。
private void addVehicle(String stringImage) {
}
public String getStringImage(Bitmap bitmap){
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
byte[] imageByteArray = byteArrayOutputStream.toByteArray();
String encodedImage = Base64.encodeToString(imageByteArray,
Base64.DEFAULT);
return encodedImage;
}
}
删除圆形图像视图并使用默认图像视图,使用圆形裁剪..使用 Glide 圆形裁剪功能....
Glide.with(context).load("dddd").apply(RequestOptions.circleCropTransform()).into(imageview);
只需在您的实用程序中创建如下常用方法 class 如下:
public static void setCircularImageToGlide(final Context context, final CircularImageView imageView, String imageUrl) {
Glide.with(context).load("" + imageUrl).asBitmap().placeholder(R.drawable.ic_photo_placeholder).transform(new CircleTransform(context)).into(new BitmapImageViewTarget(imageView) {
@Override
protected void setResource(Bitmap resource) {
RoundedBitmapDrawable circularBitmapDrawable =
RoundedBitmapDrawableFactory.create(context.getResources(), resource);
circularBitmapDrawable.setCircular(true);
imageView.setImageDrawable(circularBitmapDrawable);
}
});
}
我已经将 CircularImageView
作为参数传递给方法 single 你正在使用 CircularImageView
而不是简单的 ImageView
.
在您需要将图像设置到您的 CircularImageView
中的任何地方如下调用它,如下所示:
CommonUtil.setCircularImageToGlide(YOUR_CONTEXT, YOUR_CIRCULAR_IMAGE_VIEW, "" + YOUR_IMAGE_URL);
我正在使用以下依赖项:
implementation 'com.github.bumptech.glide:glide:3.7.0'
Glide 不会加载我与 recycler view
上的产品链接的图像。图片应该从我的 PHP
MySQL
数据库中提取。不太确定我做错了什么。请帮忙
我尝试了一些在网上找到的解决方案,但 none 对我有用。
private String image;
以上是我的产品列表中的字符串标识符
//loading the image
Glide.with(mCtx)
.load(product.getImage())
.into(holder.imageView);
holder.textViewPlateNumber.setText(product.getPlatenumber());
holder.textView1.setText(product.getMake());
holder.textView2.setText(product.getModel());
holder.textView3.setText(product.getYear());
holder.textViewName.setText(product.getName());
holder.textDate.setText(product.getDate());
holder.recyclerid.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String platenumber = productList.get(position).getPlatenumber();
String make = productList.get(position).getMake();
String model = productList.get(position).getModel();
String year = productList.get(position).getYear();
String name = productList.get(position).getName();
String date = productList.get(position).getDate();
String vin = productList.get(position).getVin();
String displacement = productList.get(position).getDisplacement();
String fueltype = productList.get(position).getFueltype();
String transmission = productList.get(position).getTransmission();
String mileage = productList.get(position).getMileage();
String ownerorcompany =
productList.get(position).getOwnerorcompany();
String homeorcompanyaddress =
productList.get(position).getHomeorcompanyaddress();
String contactnumber =
productList.get(position).getContactnumber();
String emailaddress = productList.get(position).getEmailaddress();
String facebook = productList.get(position).getFacebook();
String image = productList.get(position).getImage();
以上是我用来显示适配器上每个项目图像的代码。
<de.hdodenhof.circleimageview.CircleImageView
android:id="@+id/imageView"
android:layout_width="0dp"
android:layout_height="0dp"
android:src="@drawable/car_avatar"
app:civ_border_color="@color/cta"
app:civ_border_width="2dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/guideline17"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
以上是图像在我的 xml 文件中的布局方式。保存在我的 php
sql
中的其余项目显示在列表中,除了图像。这是我的 php
文件的样子:
$vehicle = array();
while ($row=mysqli_fetch_array($sql)) {
$temp = array();
$temp['id'] = $row['VehicleID'];
$temp['platenumber'] = $row['PlateNumber'];
$temp['make'] = $row['Make'];
$temp['model'] = $row['Model'];
$temp['year'] = $row['Year'];
$temp['name'] = $row['OwnerorCompany'];
$temp['date'] = $row['AddDate'];
$temp['image'] = $row['vehicleImage'];
$temp['vin'] = $row['Vin'];
$temp['displacement'] = $row['Displacement'];
$temp['fueltype'] = $row['FuelType'];
$temp['transmission'] = $row['Transmission'];
$temp['mileage'] = $row['Mileage'];
$temp['ownerorcompany'] = $row['OwnerorCompany'];
$temp['homeorcompanyaddress'] = $row['HomeorCompanyAddress'];
$temp['contactnumber'] = $row['ContactNumber'];
$temp['emailaddress'] = $row['EmailAddress'];
$temp['facebook'] = $row['FacebookID'];
array_push($vehicle, $temp);
}
echo json_encode($vehicle);
//}
?>
这就是图像在我的数据库中的保存方式:
$photo = $_POST['photo'];
$id=uniqid();
$path = "vehicle_upload/$id.jpeg";
$finalpath = "http://192.168.0.10/widevalueautoInc
2/server/api/".$path;
当我 运行 应用程序时,除了图像未显示在列表中外,一切顺利。这是我用来保存图像和尺寸的 java 代码。
private void addVehicle(String stringImage) {
}
public String getStringImage(Bitmap bitmap){
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, byteArrayOutputStream);
byte[] imageByteArray = byteArrayOutputStream.toByteArray();
String encodedImage = Base64.encodeToString(imageByteArray,
Base64.DEFAULT);
return encodedImage;
}
}
删除圆形图像视图并使用默认图像视图,使用圆形裁剪..使用 Glide 圆形裁剪功能....
Glide.with(context).load("dddd").apply(RequestOptions.circleCropTransform()).into(imageview);
只需在您的实用程序中创建如下常用方法 class 如下:
public static void setCircularImageToGlide(final Context context, final CircularImageView imageView, String imageUrl) {
Glide.with(context).load("" + imageUrl).asBitmap().placeholder(R.drawable.ic_photo_placeholder).transform(new CircleTransform(context)).into(new BitmapImageViewTarget(imageView) {
@Override
protected void setResource(Bitmap resource) {
RoundedBitmapDrawable circularBitmapDrawable =
RoundedBitmapDrawableFactory.create(context.getResources(), resource);
circularBitmapDrawable.setCircular(true);
imageView.setImageDrawable(circularBitmapDrawable);
}
});
}
我已经将 CircularImageView
作为参数传递给方法 single 你正在使用 CircularImageView
而不是简单的 ImageView
.
在您需要将图像设置到您的 CircularImageView
中的任何地方如下调用它,如下所示:
CommonUtil.setCircularImageToGlide(YOUR_CONTEXT, YOUR_CIRCULAR_IMAGE_VIEW, "" + YOUR_IMAGE_URL);
我正在使用以下依赖项:
implementation 'com.github.bumptech.glide:glide:3.7.0'