2010-06-08 39 views
16

Tôi đang tìm một cách dễ dàng để người dùng xem có bao nhiêu đồ uống mà họ đã có cho máy tính BAC.Làm cách nào để tạo một ImageView trong mã java, trong một Bố cục hiện có?

Ảnh của ứng dụng:

PICTURE OF THE APP

Mở nút bấm, tôi muốn một hình ảnh được thêm vào màn hình, trực thuộc spinner và với sự liên kết trái. Khi tôi nhấn nút lần nữa, tôi muốn thêm một hình ảnh khác vào màn hình.

Vì vậy, nếu tôi nhấn nút thêm bia, bia có thể rút ra sẽ xuất hiện bên dưới hộp xoay tròn. Nếu tôi nhấn nút thêm bia một lần nữa, tôi muốn có HAI loại có thể rút được của bia dưới spinner, tốt nhất là với chúng được thêm từ bên phải.

(Ngoài ra, có chúng đạt đến giới hạn chiều rộng của họ, quấn xung quanh, và bắt đầu một lần nữa ở bên trái, nhưng dưới một dòng đầy đủ, sẽ là TUYỆT)

tôi không thể tìm ra cách để làm điều này. Tôi giả sử thêm một ImageView trong mã vào một bố trí tương đối (vì nó cần phải được định vị ở bên phải) sẽ là tuyến đường tốt nhất, nhưng nếu nó có thể trong xml tôi muốn được hạnh phúc hơn để sử dụng đó. Bất kỳ giúp đỡ?

Trả lời

39

Trong gọi lại nhấp của nút, tạo đối tượng ImageView, đặt hình ảnh chai và định vị nó. Ví dụ: (Tôi giả định tên của các phần tử của bạn):

ImageView iv = new ImageView(this); 
iv.setImageResource(R.drawable.beerbottle); 
RelativeLayout rl = (RelativeLayout) findViewById(R.id.RelativeLayout01); 
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
    RelativeLayout.LayoutParams.WRAP_CONTENT, 
    RelativeLayout.LayoutParams.WRAP_CONTENT); 
lp.addRule(RelativeLayout.BELOW, R.id.ButtonRecalculate); 
lp.addRule(RelativeLayout.ALIGN_PARENT_RIGHT); 
rl.addView(iv, lp); 

Tôi chưa thử nghiệm điều này, hãy nhớ bạn, nhưng nó sẽ cho bạn một khởi đầu tốt. Có thể bạn sẽ cần phải thêm các tham số khác vào ImageView và có thể vào LayoutParams để làm cho nó trông đẹp hơn, cộng với việc theo dõi số lượng chai được hiển thị, v.v.

+0

Ah! Gần! Chỉ có dòng trên cùng "ImageView iv = new ImageView (this);" ném một ngoại lệ "Hàm tạo ImageView() là không xác định." –

+0

Tôi có thể thay thế "này" bằng "null" và nó chạy nhưng sau đó hình ảnh không hiển thị ... –

+0

Ah vâng, nó nằm trong gọi lại để nó thiếu bối cảnh thích hợp. Thay thế "this" bằng "ParentActivity.this", trong đó ParentActivity là lớp Activity mà bạn đang thiết lập người nghe. –

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