마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 중심점 좌표 잡기가 너무 어려워요

0 추천
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.sub);
    editText=(EditText)findViewById(R.id.editText);
   

    textView=(TextView)findViewById(R.id.textView3);
    stay1=(stay1)findViewById(R.id.view);
    l1=(LinearLayout)findViewById(R.id.l1);
    l1.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
             wi = l1.getLayoutParams().width;
           hi = l1.getLayoutParams().height;    }
    });
    stay1.w=wi;
    stay1.h=hi;
 
 

Observer()를 이용해서 시간의 
중심점을 잡으로고 하는데요.
토스트를 이용해서 좌표를 구해보니 -1로 나와요. 
중심점이 원 바깥쪽에 중심이 잡혀서 제가 원하는게 안나와요. 
대충 중간으로 오려면 300,300은 되어야 하는데 -1로 계속 나오는데 
무엇이 문제인지 모르겠어요. 
wi = l1.getLayoutParams().width;
hi = l1.getLayoutParams().height; 
혹시 width,height를 선언을 안해줬는데 이게 문제인가요?
width, height를 선언 안했는데 선언 된걸로 나오든데
이걸 다시 선언해야 하나요?
l1은 이미지뷰 레이아웃이름 입니다.
dddffaaas123 (230 포인트) 님이 2017년 1월 25일 질문
dddffaaas123님이 2017년 1월 25일 수정

1개의 답변

0 추천
@Override
protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);

  final TextView textView = (TextView) findViewById(R.id.text1);
  textView.setText("가나다라마바");

  Log.i("MainActivity : onCreate", "1111|" + textView.getWidth());

  textView.post(new Runnable() {
    @Override
    public void run() {
      Log.i("MainActivity : run", "2222|" + textView.getWidth());
    }
  });

  Log.i("MainActivity : onCreate", "3333|" + textView.getWidth());
}

 

01-26 14:00:04.561 I/MainActivity : onCreate: 1111|0
01-26 14:00:04.561 I/MainActivity : onCreate: 3333|0
01-26 14:00:04.626 I/MainActivity : run: 2222|234

 

쎄미 (162,410 포인트) 님이 2017년 1월 26일 답변
...