0

この問題は非常に基本的なように思われるかもしれませんが、私はそれに対する答えを見つけることができませんでした。

imageViewを画面の特別な位置に配置する必要があります。画面の上から10分の3、左から5分の1にする必要があるとします。

最初に頭に浮かぶのは、AbsoluteLayoutを使用し、絶対座標を使用してimageViewを配置することです。ただし、この方法では、さまざまな画面サイズでの作業で問題が発生します。問題は、xmlファイルで画面のサイズ(幅と高さ)を取得できないことです。一方、ImageViewがプログラムで実行するためのsetX()/ setY()または同様のメソッドが見つかりませんでした。

この問題を解決するためのアイデアは、AbsoluteLayoutの代わりにLinearLayoutを使用し、ダミービュー(textViesなど)を挿入して、目的のimageViewの後ろまたは上のスペースを埋めることでした。ただし、画面に配置する複数のimageViewがあり、目的の位置が整列していない場合、これは複雑になります。別の解決策は、パディングまたはマージンを使用することでしたが、AbsoluteViewでは機能しませんでした。

imageViewを他のビューとの相対位置に配置する必要はありません。画面内の特別な位置に配置する必要があります。

4

1 に答える 1

0

AbsoluteLayout は非推奨であると言われましたが、このコードは私にとってはうまくいきました:

    AbsoluteLayout.LayoutParams lp=new AbsoluteLayout.LayoutParams(width,height,x,y);
    myImageView.setLayoutParams(lp);
于 2013-02-21T10:48:19.977 に答える