đặt chiều cao của lần xem hình ảnh dưới dạng đối sánh theo chương trình


83

Tôi cần phải thiết lập chiều cao của một ImageView như matchparent programatically.if nó là một chiều cao cố định tôi biết làm thế nào để thiết lập.

nhưng làm thế nào tôi có thể đặt nó là matchparent?

BIÊN TẬP:

thực sự chiều cao của bố cục mẹ là động. vì vậy tôi cần đặt chiều cao của imageview là chiều cao của bố mẹ.


2
tôi đã thử tất cả các phương pháp được đề cập trong answers.but nó không được thiết lập chiều cao như trận đấu mẹ :(
Andro-cô gái

1
Bạn nên xem lại câu trả lời được chấp nhận của mình
CularBytes

Câu trả lời:


-20

khởi tạo LayoutParams.

gán chiều rộng và chiều cao của cha mẹ và chuyển nó vào phương thức setLayoutParams của imageview


3
bạn không bao giờ nên vượt qua kích thước thực của cha mẹ. Luôn sử dụng MATCH_PARENT thay vì giá trị thực. Nói chung, tôi không khuyên bạn nên sử dụng kích thước tuyệt đối vì nó có thể trông hoàn toàn khác trên tất cả các màn hình có. Tôi thích sử dụng tạ hơn.
Daniel Bo

12
Thành thật mà nói này phải là một bình luận
Neon Warge

255
imageView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));

12
Lúc tôi nhấn Alt + Enter trong LayoutParams, tôi thấy rất nhiều lớp. Bạn có thể vui lòng cho tôi biết cái nào để sử dụng?
Uday

chế độ xem phụ huynh là gì?
C. Leung

4
Bạn nên sử dụng lớp nhìn mà bạn muốn thiết lập LayoutParams tức LinearLayout.LayoutParams sử dụng để thiết lập prams để LL của bạn :)
Andrew

Điều gì sẽ xảy ra nếu bạn muốn chiều cao là động dựa trên kích thước của hình ảnh gốc nhưng muốn chiều rộng là MATCH_PARENT?
Taylor

nhập android.view.ViewGroup
Alan Nelson

57
imageView.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT;

7
Nếu bạn đang thiết lập các thông số lần đầu tiên vì bạn thực hiện chế độ xem hình ảnh theo chương trình, điều này sẽ xảy ra lỗi con trỏ rỗng (hoặc xảy ra với chế độ xem văn bản) và sẽ xảy ra ở mọi nơi khác.
Tatarize

15
imageView.setLayoutParams
    (new ViewGroup.MarginLayoutParams
        (width, ViewGroup.LayoutParams.MATCH_PARENT));

Loại tham số bố cục phụ thuộc vào nhóm chế độ xem chính. Nếu bạn đặt sai nó sẽ gây ra ngoại lệ.


1
"chiều rộng" là gì?
FlorianB

9

Đối với người dùng Kotlin

val params = mImageView?.layoutParams as FrameLayout.LayoutParams
params.width = FrameLayout.LayoutParams.MATCH_PARENT
params.height = FrameLayout.LayoutParams.MATCH_PARENT
mImageView?.layoutParams = params

Ở đây tôi đã sử dụng FrameLayout.LayoutParamsvì chế độ xem ( ImageView) cha của tôi làFrameLayout


4

Tôi đã có cùng một vấn đề. Giải quyết bằng cách cài đặt đầu tiên:

imageView.setMinHeight(0);
imageView.setMinimumHeight(0);

Và sau đó :

imageView.getLayoutParams().height= ViewGroup.LayoutParams.MATCH_PARENT;

setMinHeight được định nghĩa bởi ImageView, trong khi setMinimumHeight được định nghĩa bởi View. Theo tài liệu, giá trị lớn hơn trong hai giá trị được sử dụng, vì vậy cả hai phải được đặt.


3

Bạn có thể thử điều này trong trường hợp bạn muốn khớp với cha mẹ. Sự sắp xếp kích thước là chiều rộng và chiều cao

web = new WebView(this);
        web.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));

1

Bạn có thể sử dụng hằng số MATCH_PARENT hoặc giá trị số -1 của nó.


1
MATCH_PARENT không được xác định trong ngữ cảnh. Bạn phải nói 'LayoutParams.MATCH_PARENT'
Akshat Agarwal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.