0

この問題は非常に基本的なように思われるかもしれませんが、私はそれに対する答えを見つけることができませんでした。imageViewを画面の特別な位置に配置する必要があります。画面の上から10分の3、左から5分の1にする必要があるとします。

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

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

4

2 に答える 2

0

LinearLayoutとRelativeLayoutを使用して、画面内の1つまたは複数のビューを任意の位置に簡単に配置できます。

LinearLayoutを使用している間、対応するxmlで重力や重みなどのプロパティを使用してビューを調整します。

RelativeLayoutを使用している間、align、margin、およびXXToを使用できます。ここで、XXは、既存のビューの左、右、上、下にあります。

回答が得られなかった場合は、配置するビューの場所と数を具体的に指定してください。

于 2013-02-20T14:47:25.217 に答える
0

次のようでした。

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