2010-06-16 26 views
12

bạn bè,cách bố trí trung tâm theo chiều dọc trong android thông qua mã java?

tôi muốn đặt thuộc tính android: layout_centerVertical = "true" của bố cục thông qua mã java của hình ảnh.

bất kỳ ai cũng có thể hướng dẫn tôi cách đạt được điều này. đây là mã của tôi.

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); 

params.height = (int)totalHeight; 

img.setLayoutParams(params); 

tôi đã thử sử dụng setScaleType (ScaleType.FIT_CENTER) nhưng không sử dụng.

bất kỳ trợ giúp nào sẽ được đánh giá cao.

Trả lời

21

Sửa lỗi nếu tôi sai nhưng có vẻ như bạn đang cố đặt căn chỉnh (hoặc định hướng vị trí) của hình ảnh bên trong bố cục? Để thực hiện điều đó, bạn cần đặt thuộc tính trọng lực của bố cục chứa Chế độ xem bạn căn chỉnh.

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon); 

    RelativeLayout layout = (RelativeLayout) findViewById(R.id.layout); 
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
      RelativeLayout.LayoutParams.FILL_PARENT, 
      RelativeLayout.LayoutParams.WRAP_CONTENT); 

    ImageView imageView = new ImageView(this); 
    imageView.setLayoutParams(params); 
    imageView.setImageBitmap(bitmap); 

    layout.setGravity(Gravity.CENTER_VERTICAL | Gravity.TOP); 
    layout.addView(imageView); 

Trong ví dụ này tôi đang lập trình thêm một hình ảnh đến một RelativeLayout trong nguồn bố trí của tôi, thêm một ImageView, và sắp xếp nó để nó sẽ được đặt ở phía trên cùng, vị trí trung tâm dọc.

2

Trong SDK mới không có Gravity.VERTICAL_CENTER, nhưng có thể bạn có thể đặt điều này bằng layout.setGravity(Gravity.CENTER).

41

Cố Bộ luật này ..

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams 
      ((int) LayoutParams.WRAP_CONTENT, (int) LayoutParams.WRAP_CONTENT); 

params.addRule(RelativeLayout.CENTER_VERTICAL); 

img.setLayoutParams(params); 
+1

Tôi thích này trong câu trả lời được chấp nhận vì nó không ảnh hưởng đến bất kỳ subviews khác về quan điểm của phụ huynh. – arlomedia

+1

Điều này tốt hơn câu trả lời được chấp nhận trong RelativeLayout! – cwhsu

Các vấn đề liên quan