如何使用检索图像作为单选按钮的绘图



我正在使用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的帮助下从实时数据库中获得的。我的问题是,我如何将检索到的图像设置为drawableRight或RadioButton 的drawable

您可以从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, 0, 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'

您可以将Picasso与imageView一起使用。从url加载图像后,可以将其显示在RadioButton的右侧。如果你想为此编写示例代码,我可以帮你。

例如:

应用程序内/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)
}
}

最新更新