0

画像の一部をクリック可能にしようとしています。この場合、24 ポートのスイッチがあり、ユーザーがポートをクリックしてポート番号を表示する必要があります。私はすでにズームを行っており、画像の上に長方形を挿入しようとしましたが、私はまだAndroid開発に慣れていないので、タスクを達成する方法がよくわかりません.

四角形を作成して画像に配置するコードは次のとおりです(アイデアは、ポート番号といくつかのテキストを保持する1つのクラスRectanglesを持っているので、それらを取得できるということです)

public class MainActivity extends Activity{

ImageView DrawingImage;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);



    DrawingImage = (ImageView) this.findViewById(R.id.image);

    Bitmap bitmap2 = Bitmap.createBitmap((int) getWindowManager()
        .getDefaultDisplay().getWidth(), (int) getWindowManager()
        .getDefaultDisplay().getHeight(), Bitmap.Config.ARGB_8888);

    Canvas canvas = new Canvas(bitmap2);
    DrawingImage.setImageBitmap(bitmap2);

    // Draw Rectangle

    Paint paint = new Paint();
    paint.setColor(Color.GREEN);
    paint.setStyle(Paint.Style.FILL);

    float left = 20;
    float top = 20;
    float right = 50;
    float bottom = 100;

    canvas.drawRect(left, top, right, bottom, paint);

    Zoom image = (Zoom) findViewById(R.id.image);
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test);
    image.setImageBitmap(bitmap);

    int posX=(int)image.getX();
    int posY=(int)image.getY();
    double height=image.getHeight();
    double width=image.getWidth();

  }
}

しかし、アプリを実行すると、長方形が表示されません。長方形の前に画像を宣言しても、長方形しか見えません。

助言がありますか?

どんな助けでも大歓迎です。

前もって感謝します!

敬具、 ディムティア・ゲオルギエフ

4

2 に答える 2

1

xml レイアウト:

<FrameLayout 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">

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</FrameLayout>

onCreate メソッド:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ImageView DrawingImage = (ImageView) this.findViewById(R.id.imageView2);

    Bitmap bitmap2 = Bitmap.createBitmap((int) getWindowManager()
        .getDefaultDisplay().getWidth(), (int) getWindowManager()
        .getDefaultDisplay().getHeight(), Bitmap.Config.ARGB_8888);

    Canvas canvas = new Canvas(bitmap2);
    DrawingImage.setImageBitmap(bitmap2);

    // Draw Rectangle

    Paint paint = new Paint();
    paint.setColor(Color.GREEN);
    paint.setStyle(Paint.Style.FILL);

    float left = 20;
    float top = 20;
    float right = 50;
    float bottom = 100;

    canvas.drawRect(left, top, right, bottom, paint);

    ImageView image = (ImageView) findViewById(R.id.imageView1);
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
    image.setImageBitmap(bitmap);

    int posX=(int)image.getX();
    int posY=(int)image.getY();
    double height=image.getHeight();
    double width=image.getWidth();
}

今最初に何を描くかではありません。それはxmlレイアウトについてです。最初に置くもの。もちろん、実際に必要なものを実現するために、画像ビューの高さと幅の属性をいじる必要があるかもしれません。しかし、これは私がテストして動作しています。

于 2013-09-19T06:44:47.927 に答える