gpt4 book ai didi

java - 将图像从表单加载到 RecyclerView

转载 作者:太空宇宙 更新时间:2023-11-04 09:35:04 26 4
gpt4 key购买 nike

我正在将图像从表单上传到 RecyclerView。我以这样的方式创建,如果我点击“+”按钮,让我放置它,让我放置画廊图像和/或从相机拍摄的图像。

但是除此之外,对于 Spinner,我已经分配给他列表中的每个元素默认分配给他一个图像,我已经通过 Glide 加载了它:

spTypePets.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

Resources res = getResources();
String spinner = spTypePets.getSelectedItem().toString();

switch (position) {

case 0:

Glide.with(PetsFormActivity.this).load(R.drawable.dog).apply(RequestOptions.circleCropTransform()).into(ivPetImageForm);
break;

case 1:

Glide.with(PetsFormActivity.this).load(R.drawable.cat).apply(RequestOptions.circleCropTransform()).into(ivPetImageForm);
break;

case 2:

Glide.with(PetsFormActivity.this).load(R.drawable.mouse).apply(RequestOptions.circleCropTransform()).into(ivPetImageForm);
break;

case 3:

Glide.with(PetsFormActivity.this).load(R.drawable.fish).apply(RequestOptions.circleCropTransform()).into(ivPetImageForm);
break;

case 4:

Glide.with(PetsFormActivity.this).load(R.drawable.birds).apply(RequestOptions.circleCropTransform()).into(ivPetImageForm);
break;

case 5:

Glide.with(PetsFormActivity.this).load(R.drawable.reptile).apply(RequestOptions.circleCropTransform()).into(ivPetImageForm);
break;

case 6:

Glide.with(PetsFormActivity.this).load(R.drawable.other).apply(RequestOptions.circleCropTransform()).into(ivPetImageForm);
break;

}

}

到目前为止一切顺利,问题是现在我在通过此表单创建“Pet”类型的对象时还需要默认加载该图像,即:如果您不拍摄任何照片,则默认保留照片并可以上传它。

 btnSave.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

realm.beginTransaction();

Pets pet = new Pets();

pet.setPetName(etPetName.getText().toString());
pet.setPetType(petTypeLst.get(spTypePets.getSelectedItemPosition()));
pet.setPetUrlImage(imagePath);

Number maxId = realm.where(Pets.class).max("id");
long nextID;

if (maxId == null) {
nextID = 1;
} else {
nextID = maxId.longValue() + 1;
}

pet.setId(nextID);

realm.copyToRealmOrUpdate(pet);
realm.commitTransaction();

finish();

}
});

我知道除了保存 Glide 之外,我还必须将它保存在“Pet”中,以便可以添加它,但我不知道如何添加。看看你能不能帮我一把。非常感谢。

问候。

最佳答案

首先需要将R.drawable转换为String,然后将它们分配给imagePath

示例

spTypePets.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

Resources res = getResources();
String spinner = spTypePets.getSelectedItem().toString();

switch (position) {
case 0:
imagePath = getURLForResource(R.drawable.dog);
Glide.with(PetsFormActivity.this).load(R.drawable.dog).apply(RequestOptions.circleCropTransform()).into(ivPetImageForm);
break;
......
}
}

public String getURLForResource (int resourceId) {
return Uri.parse("android.resource://"+R.class.getPackage().getName()+"/" +resourceId).toString();
}

当点击btnSave时,检查imagePath是否为空。如果为空,则传递默认图像。确保在传递之前将默认图像转换为 String

关于java - 将图像从表单加载到 RecyclerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56610656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com