2012-04-19 3 views
2

다른보기 위에보기를 추가하려고합니다.안드로이드에서 어떤보기가 상단에 있을지 선택하는 방법

먼저 xml을 통해보기를 설정하고 두 번째를 프로그래밍 방식으로 추가하고 싶습니다. 공공 무효에서 onCreate (번들 savedInstanceState)

{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    LinearLayout ll = (LinearLayout) findViewById(R.id.layout); 
    drawView = new DrawView(this); 
    drawView.setBackgroundColor(Color.TRANSPARENT); 
    Bitmap bitmap = Bitmap.createBitmap(10, 100, Bitmap.Config.ARGB_8888); 
    Canvas canvas = new Canvas(bitmap); 
    drawView.draw(canvas); 
    drawView.setLayoutParams(new LayoutParams(800, 0, 0.18f)); 
    LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)drawView.getLayoutParams(); 
    params.setMargins(0, 0, 0, -130); 
    drawView.setLayoutParams(params); 
    ll.addView(drawView, 2); 

은}

내 문제는 XML 내가 추가하려고 뷰의 상단에 있다는 것입니다.

두 번째보기를 맨 위에 표시하려면 어떻게해야합니까?

drawView.bringToFront(); 

답변

0

당신은 뷰의 bringToFront 메서드를 호출 할 수 있습니다. 보기를 다른보기 위에 쌓아 올리려면 LinearLayout 대신 RelativeLayout과 같은보기를 허용하는 레이아웃을 사용하십시오.

+0

이렇게하면보기가 사라집니다. – roiberg

+0

이상합니다. 처음으로보기를 추가 할 수 있습니까? 'll.addView (drawView, 0)' –

+0

@Luksprog가 지적한 것처럼 실제 문제는 레이아웃의 선택이라고 생각합니다. –

2

LinearLayout가 아이 다른 수직 또는 수평 하나씩 배치 레이아웃입니다 :

+0

should 마진도 트릭을합니까? 또는 선형 레이아웃에서 여백을 사용하는 것은 무엇입니까? – roiberg

+0

@roiberg 무슨 일이 일어나고 있는지 정확한 레이아웃을 모르지만 여백이 효과가 있다고 생각하지 않습니다. 그리고 효과가 있다고하더라도 앱을 현재 화면이 아닌 모든 화면에서보기 좋게 보이게하려면 사용 여백을 원하지 않을 것입니다. – Luksprog

2

뷰를 서로 쌓아 올리려면 상대 레이아웃을 사용해야합니다. 따라서 귀하의 경우 "레이아웃"을 상대 레이아웃으로 바꾸십시오. Java 코드에서 아래와 같이 할 수 있습니다.

RelativeLayout.LayoutParams baseLayoutParam = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 
    baseLayout.setLayoutParams(baseLayoutParam); 
    DrawView drawView = new DrawView(context); 
    RelativeLayout.LayoutParams rLayoutParams = new RelativeLayout.LayoutParams(android.view.ViewGroup.LayoutParams.FILL_PARENT, (int) (250 * Utility.getDip(context))); 
    rLayoutParams.addRule(RelativeLayout.CENTER_IN_PARENT); // Adjust accordingly to your requirement 
    drawView.setLayoutParams(rLayoutParams);ll.addView(drawView); 
+0

예! 감사!!!!!!! – roiberg

관련 문제