我有一个Android应用程序,可以播放音频/视频和显示图片.对于视频,我想在预览图像的顶部以及列表视图中叠加播放按钮.现在我是如何使用xml中的ImageView,然后drawable是我定义的图层列表以编程方式,因为其中一个图像是动态的,播放按钮当然是静态的.我想从底部对齐播放按钮10px,并水平居中.
我的ImageView定义如下(在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"/>
Run Code Online (Sandbox Code Playgroud)
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); …Run Code Online (Sandbox Code Playgroud)