Вот класс компонента продукта введите описание изображения здесь
Итак, мое представление Recycle работает, но эта строка кода не работает. Это из моего класса адаптера.
holder.imageView.setImageDrawable(mCtx.getResources().getDrawable(product.getImage()));
КЛАСС
@NonNull
@Override
public productViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
LayoutInflater inflater = LayoutInflater.from(mCtx);
View view = inflater.inflate(R.layout.list_layout,null);
productViewHolder holder = new productViewHolder(view);
return holder;
// return new productViewHolder(view);
}
@Override
public void onBindViewHolder(@NonNull productViewHolder holder, int position) {
Product product = productList.get(position);
holder.textViewTitle.setText(product.getTitle());
holder.textViewDescription.setText(product.getShort_description());
holder.textViewRating.setText(String.valueOf(product.getRating()));
holder.textViewPrice.setText(String.valueOf(product.getPrice()));
// holder.imageView.setImageDrawable(mCtx.getResources().getDrawable(product.getImage()));
}
@Override
public int getItemCount() {
//returns number of elements within the list
return productList.size();
}
class productViewHolder extends RecyclerView.ViewHolder{
ImageView imageView;
TextView textViewTitle, textViewDescription, textViewRating, textViewPrice;
public productViewHolder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.imageView);
textViewTitle = itemView.findViewById(R.id.textViewTitle);
textViewDescription = itemView.findViewById(R.id.textViewShortDesc);
textViewRating = itemView.findViewById(R.id.textViewRating);
textViewPrice = itemView.findViewById(R.id.textViewPrice);
}
общедоступный продукт (int id, String title, String short_description, Double rating, Double price, int image) {this.id = id; this.title = title; this.short_description = short_description; this.rating = рейтинг; this.price = цена; this.image = изображение; public int getImage () {вернуть изображение; }
извините за то, как он может выглядеть, могу ли я отправить сюда изображения?
могу я отправить изображение через твиттер?
ок, как установить Product? В частности, как получить изображение для ставок, установленное в Product?
Просто поделитесь им здесь (или обновите вопрос дополнительными данными / запрашиваемыми данными)
Я не знал, как я отправил изображение в твиттер. Прошу прощения я совсем новенький
не надо извиняться. Просто покажите нам код, в котором вы устанавливаете переменную Product.
я загружаю изображение выше
позвонив с помощью get
Если ваше изображение в объекте продукта содержит ресурс изображения из вашего пакета с возможностью рисования, вам необходимо использовать
holder.imageView.setImageResource(product.getImage());
Попробуй это:
если вы получаете форму данных api, установите изображение следующим образом
RequestOptions options = new RequestOptions()
.centerCrop()
.placeholder(R.drawable.avatar1)
.error(R.drawable.avatar1)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.priority(Priority.HIGH)
.dontAnimate()
.dontTransform();
Glide.with(context)
.load(UpcomingHistoryList.get(position).getPhotoUrl())
.apply(options)
.into(holder.img);
вы можете использовать скольжение и пикассо
если вы получаете форму изображения, которую можно рисовать, установите изображение следующим образом
ImageView imageView = (ImageView) findViewById(R.id.image);
imageView.setImageResource(R.drawable.hello);
все файлы в txt. Можете ли вы взглянуть
Я думаю, вы получаете строку объекта вашего продукта, вы должны попытаться преобразовать эту строку в Uri или растровое изображение, чтобы, когда вы создаете набор в просмотре изображения, вы можете показать, это очень поможет, если вы покажете свой класс продукта, чтобы знать какой тип значения возвращает product.getimage ();
Uri.parse(product.getImage());
Классы и раскладки здесь
Дело в том, что когда я удаляю holder.imageView.setImageDrawable (mCtx.getResources (). GetDra wable (product.getIma ge ())); Список отображается, но когда я добавляю это в класс адаптера, все приложение не запускается.
хорошо, но вы хотите показать загруженное изображение вашего телефона или папку с возможностью рисования? Хорошо, но вы хотите показать загруженное изображение телефона или папки с возможностью рисования? Можете ли вы отправить снимок экрана с ошибкой? Я предполагаю, что это будет исключение ошибки нулевого указателя
из доступной папки
хорошо, используйте библиотеку git в gradle.app ....... реализация 'com.github.bumptech.glide: glide: 3.7.0' luego Glide.with (context) .load (// produc.getimage). fitCenter () .centerCrop () .into (holder.imageview);
о каком конкретно ты думаешь
Есть метод, который я использую для загрузки файлов с возможностью рисования, они векторные isset
Есть метод, который я использую для загрузки файлов с возможностью рисования, они векторные isset
public static BitmapDescriptor getBitmapFromVector(@NonNull Context context,
@DrawableRes int vectorResourceId,
@ColorInt int tintColor) {
Drawable vectorDrawable = ResourcesCompat.getDrawable(
context.getResources(), vectorResourceId, null);
if (vectorDrawable == null) {
String TAG = "tag";
Log.e(TAG, "Requested vector resource was not found");
return BitmapDescriptorFactory.defaultMarker();
}
Bitmap bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(),
vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
vectorDrawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
DrawableCompat.setTint(vectorDrawable, tintColor);
vectorDrawable.draw(canvas);
return BitmapDescriptorFactory.fromBitmap(bitmap);
}
после этого остается только imageview.setImageBitmap (Bitmapdescriptor (parameters);
При чтении комментариев создается впечатление, что объект вашего продукта хранит изображение в виде строки. Метод getImage () должен возвращать int.
Объявите изображение (с некоторым изображением по умолчанию) в продукте следующим образом:
private int image = R.drawable.default_image;
И геттер будет выглядеть так
public int getImage() {
return image;
}
// Object class for Product
class Product{
public Product(String title, String short_description, double rating, double price, int image) {
this.title = title;
this.short_description = short_description;
this.rating = rating;
this.price = price;
this.image = image;
}
String title;
String short_description;
double rating;
double price;
int image;
}
//Array List of products
List<Product> productList = new ArrayList<>();
productList.add(new Product("Title1", "Short Description1", 4, 50, R.drawable.ic_thumb_down));
productList.add(new Product("Title2", "Short Description2", 3, 100, R.drawable.ic_thumb_down));
productList.add(new Product("Title3", "Short Description3", 4, 150, R.drawable.ic_thumb_down));
//Adapter
public class ImageAdapter extends RecyclerView.Adapter<ImageAdapter.ImageViewHolder>{
List<Integer> resourceList;
public ImageAdapter(List<Integer> resourceList) {
this.resourceList = resourceList;
}
@NonNull
@Override
public ImageViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
return new ImageViewHolder(LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.row_image, viewGroup, false));
}
@Override
public void onBindViewHolder(@NonNull ImageViewHolder imageViewHolder, int i) {
Product product = productList.get(i);
imageViewHolder.imageView.setImageResource(product.image);
// Here you can also use other field like title, description, etc...
}
@Override
public int getItemCount() {
return resourceList.size();
}
class ImageViewHolder extends RecyclerView.ViewHolder{
ImageView imageView;
public ImageViewHolder(@NonNull View itemView) {
super(itemView);
imageView = itemView.findViewById(R.id.imageView3);
}
}
}
Могу ли я заменить Int в массиве на Product? Мои занятия
да. вы можете использовать любой объект для массива.
@ D-TECK Обновленный ответ. использовал массив товаров по мере необходимости.
попробуйте использовать:
holder.imageView.setImageDrawable(ContextCompact.getDrawable(ctxt, R.drawable.YOUR_RESOURCE_IMAGE));
если ваш product.getimage () возвращает идентификатор ресурса, который равен R.drwable.YOUR_RESOURCE_IMAGE попробуйте использовать:
holder.imageView.setImageDrawable(ContextCompact.getDrawable(ctxt, product.getimage()));
что такое
product.getImage()?