1

私は Android 開発に不慣れで、画像の上に描画された線を追加する方法を理解するのに問題があります。線を引いて表示することも、画像を表示することもできますが、両方を同時に表示する方法がわかりません。

アナログ速度計ゲージを考えてみましょう。main.xml には、速度計から針を引いた画像を表示する ImageView があります。針については、プログラムで線を描画し、ゲージ イメージの上に追加したいと考えています。

これが私のアクティビティとビューコードです:

public class StartDraw extends Activity {
    DrawView drawView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //setContentView(R.layout.main);
        setContentView(new DrawView(this));

    }

    final class DrawView extends View {
        Paint paint = new Paint();

        public DrawView(Context context) {
        super(context);
            paint.setColor(Color.WHITE);
            paint.setStrokeWidth(5);
        }

        @Override
        protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

            canvas.drawLine(30, 100, 150, 200, paint);
        }
     }   
}

ここに私のmain.xmlファイルがあります:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<ImageView android:src="@drawable/image" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/imageView1"></ImageView>
</LinearLayout>

スピードメーターの上に針を表示するにはどうすればよいですか? どんな助けでも大歓迎です。

4

1 に答える 1

1

1 つのオプションは、DrawView を別のクラス ファイルに分割することです。次に、それを main.xml の LinearLayout 内の要素として追加できます。

を呼び出した後setContentView(R.layout.main);、次のようにして、Activity 内の DrawView インスタンスへの参照を取得できます。

DrawView dv = (DrawView)findViewById(R.id.drawView); //use the actual id you define in your layout xml
于 2011-08-10T01:40:53.743 に答える