2

私は 1 つの Imageview を持っており、activity_main.xmlこれから別の位置に 2 つ描画したいと思います。私は成功せずにこれを試しました:

    image = (ImageView)findViewById(R.id.imageView1);
    image2 = (ImageView)findViewById(R.id.imageView1);

    LayoutParams params = (LinearLayout.LayoutParams) image.getLayoutParams();
    LayoutParams params2 = (LinearLayout.LayoutParams) image2.getLayoutParams();

    params.topMargin = 50;
        params.leftMargin = 50;
        image.setLayoutParams(params);

        params2.topMargin = 100;
        params2.leftMargin = 100;
        image2.setLayoutParams(params2);

一枚だけ描きます。私も試しましたsetImageBitmap

image2.setImageBitmap(((BitmapDrawable)image.getDrawable()).getBitmap());

これをどのように解決すればよいですか?

4

2 に答える 2

0

レイアウトに1つImageViewしかないため、表示されるのは 1 つだけです。ImageViewと の両方が、レイアウト内で同じ ID ( )imageを参照します。image2R.id.imageView1

image = (ImageView)findViewById(R.id.imageView1);
image2 = (ImageView)findViewById(R.id.imageView1);

私が見ているように、この2つの方法で解決できます。

  1. 一度に 1 つずつインフレートImageViewし、実行時にレイアウトに追加します。これは、あなたがやろうとしていることに対してもう少し複雑です。
  2. 必要な適切な余白を使用してImageView、xml レイアウト (id を に設定)に別のものを追加します。R.id.imageView2次にImageView、コードでそれぞれを参照し、個別に編集します。

ImageView解決策 2 は、コード内で次のようになります (xml レイアウトに2 番目を追加した後)。

image = (ImageView)findViewById(R.id.imageView1);
image2 = (ImageView)findViewById(R.id.imageView2);
于 2013-04-05T21:53:05.023 に答える