Помогите с этим! Нужно, чтобы в самой активности я указывал ссылку на картинку, если знаете как сделать это через glide, picasso, любую библиотеку.
Заполнять данные надо так:
mList.add("www.example.com/image1.png");
mList.add("www.example.com/image1.png");
mList.add("www.example.com/image1.png");
Если нельзя так, то подскажите способ близкий к этому. Спасибо
Вот код адаптера.
public class CardAdapter extends RecyclerView.Adapter<CardAdapter.ViewHolder> {
private List<Integer> mList = new ArrayList<>();
private CardAdapterHelper mCardAdapterHelper = new CardAdapterHelper();
public CardAdapter(List<Integer> mList) {
this.mList = mList;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_card_item, parent, false);
mCardAdapterHelper.onCreateViewHolder(parent, itemView);
return new ViewHolder(itemView);
}
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
mCardAdapterHelper.onBindViewHolder(holder.itemView, position, getItemCount());
// holder.mImageView.setImageResource(mList.get(position));
Glide.with(holder.itemView.getContext())
.load(mList.get(position))
.into(holder.mImageView);
holder.mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ToastUtils.show(holder.mImageView.getContext(), "" + position);
}
});
}
@Override
public int getItemCount() {
return mList.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
public final ImageView mImageView;
public ViewHolder(final View itemView) {
super(itemView);
mImageView = (ImageView) itemView.findViewById(R.id.imageView);
}
}
}
Вот как заполняются данные сейчас:
public class SGalleryActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
private ImageView mBlurView;
private List<Integer> mList = new ArrayList<>();
private CardScaleHelper mCardScaleHelper = null;
private Runnable mBlurRunnable;
private int mLastPos = -1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
setContentView(R.layout.activity_sgallery);
init();
}
private void init() {
mList.add(R.drawable.shop1);
mList.add(R.drawable.shop2);
mList.add(R.drawable.shop7);
mRecyclerView = (RecyclerView) findViewById(R.id.recyclerView);
final LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getApplicationContext());
linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
linearLayoutManager.setReverseLayout(false);
mRecyclerView.setLayoutManager(linearLayoutManager);
mRecyclerView.setAdapter(new CardAdapter(mList));
mCardScaleHelper = new CardScaleHelper();
mCardScaleHelper.setCurrentItemPos(0);
mCardScaleHelper.attachToRecyclerView(mRecyclerView);
}
...
В методе onBindViewHolder(...) адаптера recycleriew:
String url = myUrls.get(position); //каким-то образом получаете ссылку
GlideApp
.with(context) // здесь получаете контекст
.load(url)
.placeholder(R.drawable.shop1) // плейсхолдер на время пока не загрузится картинка
.into(holder.imageView); //из холдера получаете imageView
Информация по подключению и работе с библиотекой здесь.
Вот так заполняем
@Override
public void onBindViewHolder(final ViewHolder holder, final int position) {
mCardAdapterHelper.onBindViewHolder(holder.itemView, position, getItemCount());
String currentUrl = mList.get(position);
Glide.with(holder.itemView.getContext())
.load(currentUrl)
.into(holder.mImageView);
holder.mImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
ToastUtils.show(holder.mImageView.getContext(), "" + position);
}
});
}
Сперва загружаем Pikasso пишем нижний код в build.gradle
implementation 'com.squareup.picasso:picasso:2.5.2'
Наш layout layout_recyler_language.xml
<LinearLayout android:orientation="vertical"
android:padding="5dp"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:app="http://schemas.android.com/apk/res-auto">
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/goodText"
android:textSize="20dp"
android:textColor="@color/filColor"
style="@style/editTextEntryName"
android:layout_width="match_parent"
android:layout_height="@dimen/height_of_textview"
android:paddingLeft="60dp"
android:paddingTop="10dp"
android:text="ddasdasa"
android:drawablePadding="5dp"
android:background="@drawable/custom_edit_text"
/>
<ImageView
android:id="@+id/img"
android:layout_margin="10dp"
android:layout_width="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/logo_small"
android:layout_height="wrap_content" />
</FrameLayout></LinearLayout>
MainActivity.java в методе onCreate
ArrayList<LanguageRecycler> lang= new ArrayList<>();
LanguageRecycler array= new LanguageRecycler("English","http://www.picshare.ru/uploads/190215/caa2BA7OG6.png");
lang.add(array);
array=new LanguageRecycler("Português","http://www.picshare.ru/uploads/190215/j28hxj6CjV.png");
lang.add(array);
array=new LanguageRecycler("Français","http://www.picshare.ru/uploads/190215/jU2hxj6CjV.png");
lang.add(array);
array=new LanguageRecycler("Italiano","http://www.picshare.ru/uploads/190215/j28hxj6CjV.png");
lang.add(array);
// Настраиваем наш recyclerView
RecyclerView recyclerView = findViewById(R.id.recycler);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
adapter = new LanguageAdapter(this, lang);
recyclerView.setAdapter(adapter);
Готовым свой шаблон по которому будем работать LanguageRecycler.java
public class LanguageRecycler {
private String icon;
private String name;
public LanguageRecycler(){
}
public LanguageRecycler(String name,String icon){
this.icon=icon;
this.name=name;
}
public String getIcon(){
return this.icon;
}
public String getName(){
return this.name;
}}
Свой адаптер для LanguageRecycler.java создаем LanguageAdapter.java
private List<LanguageRecycler> mData;
private List<String> icons;
private Context context;
private LayoutInflater mInflater;
private ItemClickListener mClickListener;
// data is passed into the constructor
LanguageAdapter(Context context, List<LanguageRecycler> data) {
this.mInflater = LayoutInflater.from(context);
this.mData = data;
this.context=context;
}
// inflates the row layout from xml when needed
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = mInflater.inflate(R.layout.layout_recyler_language, parent, false);
return new ViewHolder(view);
}
// тут пишем нащи вставные данные
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
LanguageRecycler animal = mData.get(position);
holder.myTextView.setText(animal.getName());
Log.d("Daasd",animal.getIcon());
//для работы с картинками
Picasso.with(context).load(animal.getIcon()).placeholder(R.drawable.logo_small).into(holder.img);
}
// количество строк
@Override
public int getItemCount() {
return mData.size();
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Доброй ночиПодскажите пожалуйста, как мне быть
Для определенных целей мне нужно создать метод, который будет вызывать диалоговое окно с пользователем ( TextInputDialog ), после ввода пользователем...
Есть строки, которые выводятся циклом на страницуМне необходимо при нажатии на кнопку отправить данные товара на сервер, который занесет...