Tôi có một ứng dụng Android có thể phát lại âm thanh/video và hiển thị hình ảnh. Đối với video, tôi muốn phủ một nút phát ở đầu hình ảnh xem trước và cũng trong chế độ xem danh sách. Hiện tại, cách tôi đang thực hiện với ImageView trong xml, và sau đó có thể vẽ được là một danh sách lớp lớp Tôi định nghĩa theo chương trình vì một trong những hình ảnh là động, nút phát là tĩnh tất nhiên. Tôi muốn căn chỉnh nút phát 10px từ dưới cùng và căn giữa theo chiều ngang.Android - Cách tốt nhất để che phủ một nút phát trên hình ảnh/hình thu nhỏ
ImageView My được định nghĩa như thế này (trong xml)
<ImageView
android:id="@+id/EvidencePreview"
android:layout_width="267dp"
android:layout_height="201dp"
android:scaleType="centerCrop"
android:layout_margin="3dp"
android:layout_gravity="center_horizontal|center_vertical"/>
Các ImageView là một phần của một hình thức mà người dùng có thể chỉnh sửa tiêu đề và thông tin khác. Sau đó, trong hoạt động của tôi bây giờ tôi có thể tạo danh sách lớp như thế này:
Resources resources = mContext.getResources();
Drawable playOverlayDrawable = resources.getDrawable(R.drawable.play_overlay_large);
Drawable[] layers = new Drawable[2];
layers[0] = Drawable.createFromPath(tb.filePath);
layers[1] = playOverlayDrawable;
LayerDrawable layerDrawable = new LayerDrawable(layers);
ViewGroup.LayoutParams lp = iv.getLayoutParams();
int imageHeight = lp.height;
int imageWidth = lp.width;
int overlayHeight = layers[1].getIntrinsicHeight();
int overlayWidth = layers[1].getIntrinsicWidth();
int lR = (imageWidth - overlayWidth)/2;
int top = imageHeight - (overlayHeight + 10);
int bottom = 10;
layerDrawable.setLayerInset(1, lR, top, lR, bottom);
iv.setImageDrawable(layerDrawable);
này chỉ hoạt động khi định hướng của hình ảnh là ngang. Hãy nhớ rằng hình ảnh/hình thu nhỏ là MINI_KIND có nghĩa là nó phải là 512 x 384 nhưng tôi thấy rằng nó thực sự không phải là kích thước .. Trên điện thoại của tôi, chúng là 480x800 hoặc 800x480 tùy theo hướng máy ảnh đang ở .. Vì chiều rộng/chiều cao bố cục của tôi được xác định trước tôi chỉ muốn một cách để giữ cho lớp nút phát không bị co giãn và sắp xếp theo cùng một cách mọi lúc ..
Cách rõ ràng khác để thực hiện việc này Tôi có thể sử dụng cùng một mã để hiển thị cả hình ảnh và video (cả hai đều có hình xem trước hình thu nhỏ - nhưng chỉ có video nên có nút phát trên chúng).
Bất kỳ ý tưởng nào về cách căn chỉnh các lớp bằng danh sách lớp hoặc các lựa chọn thay thế sẽ hoạt động tốt hoặc tốt hơn?
Tôi đã làm điều này nhưng tôi không thể nhận được các nhấp chuột để đăng ký nữa trong GridView của tôi – CQM