12

こんにちは、Imageview で Numbers を書き込もうとしています。N 個の質問に対する画像。ユーザーが入力した回答が正しい場合は、質問番号に目盛りの画像が表示され、それ以外の場合は質問番号に間違ったマークの画像が表示されます。画像に質問番号を書く必要があります。私のコードはここにあります:

    LinearLayout l_layout = (LinearLayout) findViewById(R.id.linear_view_report);
    LayoutParams param = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 1.0f);
    ImageView[] imgview=new ImageView[questions.length];
    for(int i=0;i<no_of_questions;i++)
    {
                if(userEnteredAnswers[i]==correct_answer[i]){           
                    Bitmap bm=BitmapFactory.decodeResource(getResources(),R.drawable.correct);
                    Canvas canvas = new Canvas(bm);
                    Paint paint = new Paint(); 
                    paint.setColor(Color.BLACK); 
                    paint.setTextSize(10); 
                    canvas.drawText(i, 5, 5, paint);

                    imgview[i]=new ImageView(this);
                    imgview[i].setImageDrawable(new BitmapDrawable(bm));
                    l_layout.addView(imgview[i]);
                }
                else {          
                    Bitmap bm=BitmapFactory.decodeResource(getResources(),R.drawable.wrong);
                    Canvas canvas = new Canvas(bm);
                    Paint paint = new Paint(); 
                    paint.setColor(Color.BLACK); 
                    paint.setTextSize(10); 
                    canvas.drawText(i, 5, 5, paint);

                    imgview[i]=new ImageView(this);
                    imgview[i].setImageDrawable(new BitmapDrawable(bm));
                    l_layout.addView(imgview[i]);
                }       
            }

次の警告が表示されます。

The constructor BitmapDrawable(Bitmap) is deprecated

実行時に画像が表示されません。私は何を間違っていますか?

4

4 に答える 4

18

何もオーバーライドせずに最も簡単な回避策はTextView、リソースを使用して背景を設定することだと思いますdrawable

例えば:

TextView t = (TextView)findViewById(R.id.my_text_view);
// setting gravity to "center"
t.setGravity(Gravity.CENTER);
t.setBackgroundResource(R.drawable.my_drawable);
t.setText("FOO");
于 2013-07-23T12:21:54.003 に答える
4

Androidのドキュメントから:

BitmapDrawable(Bitmap bitmap) このコンストラクターは API レベル 4 で廃止されました。 BitmapDrawable(Resources, Bitmap) を使用して、ドローアブルがターゲット密度を正しく設定していることを確認します。

独自のビューを作成して (例については、 Android: カスタム ビューの作成チュートリアルを参照)、このビューに画像とテキストを配置することもできます。

于 2013-07-23T12:12:44.667 に答える
2

にテキストを書き込むことはできませんが、書き込むimageviewことはできますextend。あるいは、

  1. の にオーバーラップする要素を追加しImageViewlayout、条件が true になった場合にのみ表示することができます。

  2. textViewまたは、背景として、または左/右へのドローアブルとして画像を表示するために使用できます..

Ps:ただし、オプション 1 は実装が簡単ですが、追加のレンダリングが必要になります。したがって、最初に他のオプションを検討してください。

于 2013-07-23T12:10:16.373 に答える