0

ユーザーがテキストを読んで画像を表示することでオプションを選択できるように、ラジオボタンで画像を表示し、これをラジオグループで表示したいと思います。どうすればこれを可能にできますか?

これは、ラジオボタンを作成し、画像ビューを動的に作成するコードですが、ラジオボタンをクリックして選択すると、ラジオグループで作成され、画像ビューをラジオボタンにキャストできないため、エラーが表示され、画像ビューが作成されますラジオグループの子供としても機能していませんが、完璧を示しています。

public RadioGroup showNationalCan(RadioGroup rg,Context context,ImageView iv,String voterNA){

    //candidate address  as punjab kpk etc

    if(conn==null){

    }
    try{
        RadioButton rb;
        Statement st=conn.createStatement();
        ResultSet rs=st.executeQuery("select * from AM_NATIONAL where ca_na=N'"+voterNA+"'");
        while (rs.next()) {
            rb=new RadioButton(context);
            rb.setTextColor(Color.BLACK);
            rb.setId(rs.getInt(1));
            rb.setText(rs.getString(2)+"\n"+rs.getString(3)+"\n");

            iv=new ImageView(context);
            byte[] photo=rs.getBytes(4);
            Bitmap bitmap;
            bitmap=BitmapFactory.decodeByteArray(photo, 0, photo.length);
            iv.setImageBitmap(bitmap);
            iv.setEnabled(false);


            rg.addView(iv);
            rg.addView(rb);
        }
        rs.close();
        st.close();

    } catch (SQLException e){
        e.printStackTrace();
    }
    return rg;
}
4

2 に答える 2

3

drawableRight プロパティで画像を設定できます。詳細はリンクから。

http://developer.android.com/reference/android/widget/TextView.html#attr_android:drawableRight

<RadioButton
        android:id="@+id/radio0"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:drawableRight="@drawable/ic_launcher"
        android:text="A" >
    </RadioButton>

これを使用して、ラジオ ボタンを動的に追加できます。

RadioGroup rgp= (RadioGroup) findViewById(R.id.radiogroup);
        RadioGroup.LayoutParams rprms;

        for(int i=0;i<3;i++){
              RadioButton radioButton = new RadioButton(this);
              radioButton.setText("new"+i);
              radioButton.setId(i);
              radioButton.setChecked(true);
              radioButton.setCompoundDrawables(drwable_left, drwable_top, drwable_right,                 drwable_bottom);
              rprms= new RadioGroup.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
              rgp.addView(radioButton, rprms);
        } 

setCompoundDrawables でビットマップを設定できます

setCompoundDrawables(new BitmapDrawable(your_left_bitmap), new BitmapDrawable(your_top_bitmap), new BitmapDrawable(your_right_bitmap), new BitmapDrawable(your_bottom_bitmap));

アップデート :

 Bitmap drawable = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);

              radioButton.setCompoundDrawables(new BitmapDrawable(drawable), new BitmapDrawable(drawable), new BitmapDrawable(drawable), new BitmapDrawable(drawable));
于 2014-09-02T14:10:34.400 に答える