2017-05-11 9 views
0

私は線形レイアウトを作成し、いくつかの画像ビューを含んでいます。 (set X(view.get x + 10))機能で移動すると、動きますが、は他のビューの後ろに移動します。ビューが隠されるようにする。android、linearlayoutで動くビュー

他の問題は、ビューのX & Yを取得したときです。その常に0,0です。ビューは画面の中央にあります。私は何をすべきか???私は線形レイアウトをあきらめるべきですか?

if(wichmov == "right"){ 
    if(martin.getX() < width){ 
     martin.setX(martin.getX()+ deltax); 
    } 
    else if(wichmov == "left"){ 
     if(martin.getX() > 0){ 
      martin.setX(martin.getX()- deltax); 
     } 
    } 
} 

これは私の移動方法です。

+0

私の事、RealiveLayoutを代わりに使用する方が良いだろうとView.getLocationOnScreen()を使用すると、画面上のビューの絶対位置を取得するためにLinearLayoutを使用します。 – miibpa

+0

デフォルトでは、ビューはレイアウトで宣言された順序で描画されるため、元のビューは後のビューの後ろに表示されます。 View.bringToFront() – BladeCoder

+0

@miibpaを呼び出して変更することはできますが、私は相対レイアウトに変更することはほとんどできません。画面上の場所を取得すると0,0も返されます。 :( –

答えて

0

私はただそれを理解しました。

私は相対レイアウトを使用して、線形レイアウトをマッチ・ペアレントとして設定します。線形レイアウトで背景を設計した後、線形レイアウトと相対レイアウトの内側にイメージビューを定義し、Javaで、私が望む正確な場所にその位置を設定します(特別なボックスの前面私が移動したいと思っていた線形レイアウトの)、そして幅と高さも。

次のコードは、あなたがそれをしたいあなたの画面の正確な場所にあなたのビューを配置するのに役立ち、その幅と高さを設定します:

DisplayMetrics metrics = this.getResources().getDisplayMetrics(); //getting screen size 
width = metrics.widthPixels; 
height = metrics.heightPixels; 

view.setX(width *5/8); //setting the place 
view.setY(height/4); 

LayoutParams para = view.getLayoutParams(); //set size of view 
para.height = (int) (height/2); 
para.width = (int) (width/4); 
view.setLayoutParams(para); 
関連する問題