如何解决如何使用检索图像作为单选按钮的可绘制对象
我正在使用 RadioButton
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:id="@+id/optionC"
android:textColor="@color/black"
android:text="@string/opetion1"
android:drawableRight="@drawable/ic_google_logo"
android:textSize="18sp"
android:elevation="3dp"
android:translationZ="3dp"
android:stateListAnimator="@null" />
现在我想将 drawableRihgt 设置为检索到的图像。这是我在 URL 的帮助下从实时数据库中获得的。我的问题是如何在RadioButton的drawableRight或drawable中设置检索到的图像
解决方法
为此,您可以将 Picasso 与 imageView 结合使用。从 url 加载图像后,您可以将其显示在 RadioButton 的右侧。如果您想为此编写代码示例,我可以为您提供帮助。
例如:
在 app/build.gradle 中,
implementation 'com.squareup.picasso:picasso:2.5.2'
在 res/layout/activity_main.xml 中,
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:id="@+id/optionC"
android:textColor="@color/black"
android:text="@string/opetion1"
android:drawableRight="@drawable/ic_google_logo"
android:textSize="18sp"
android:elevation="3dp"
android:translationZ="3dp"
android:stateListAnimator="@null" />
<ImageView
android:id="@+id/image_view"
android:layout_width="200dp"
android:layout_toRightOf="@id/optionC"
android:layout_height="300dp"/>
</RelativeLayout>
在 MainActivity.kt 中,
import android.os.Bundle
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity
import com.squareup.picasso.Picasso
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val imageView: ImageView = findViewById(R.id.image_view)
val url = "YOUR_URL"
Picasso.with(this).load(url).into(imageView)
}
}
,
您可以从 Glide 获取位图。然后将该位图设置为单选按钮,如下所示::
Glide.with(getApplicationContext())
.asBitmap()
.load(URL)
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(@NonNull Bitmap resource,Transition<? super Bitmap> transition) {
Drawable drw = new BitmapDrawable(getResources(),resource);
button.setCompoundDrawablesWithIntrinsicBounds(drw,0);
}
@Override
public void onLoadFailed(@Nullable Drawable errorDrawable) {
super.onLoadFailed(errorDrawable);
}
});
以下是依赖项:
implementation 'com.github.bumptech.glide:glide:4.12.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.12.0'