android图片覆盖按钮,Android – 在图片/缩图上叠加播放按钮的最佳方式

我有一个

Android应用程序,可播放音频/视频和显示图片.

对于视频,我想覆盖预览图像顶部的播放按钮以及列表视图.

现在我正在做的是在xml中使用ImageView,然后drawable是一个图层列表,我以编程方式定义,因为其中一个图像是动态的,播放按钮当然是静态的.我想从底部对齐播放按钮10px,水平居中.

我的ImageView是这样定义的(在xml中)

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"/>

ImageView是用户可以编辑标题和其他信息的表单的一部分.

然后在我的活动中,我创建了这样的图层列表:

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);

只有当图像的方向是水平时才有效.

请记住,图像/缩略图是MINI_KIND,这意味着它应该是512 x 384,但我看到它实际上不是大小.在我的手机上,它们是480×800或800×480,具体取决于相机的方向在..

由于我的布局宽度/高度是预先定义的,我只是想要一种方法来保持播放按钮层免受缩放,并按照相同的方式排列.

另一个明显的方法是使用相对布局(或者可能是框架布局?),但是我希望避免使用相同的代码来显示图像和视频(两者都具有图像缩略图预览 – 但只有视频应该有播放按钮).

任何想法如何将图层与图层列表对齐,还是可以使用更好的替代方法?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值