我正在使用视频视图和相对布局。该应用程序只能以纵向模式运行。目前,我给出了精确的dps来获得所需的大小。我想要的是将视频视图缩小到我布局的一半。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:opencv="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_smile"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="MyActivity">
<VideoView
android:id="@+id/videoViewSmile"
android:layout_width="match_parent"
android:layout_height="300dp" />
</RelativeLayout>
答案 0 :(得分:1)
首先,您可以使用名为android.Util
的{{1}}类来获取高度和宽度:
DisplayMetrics
然后将当前显示信息插入声明的DisplayMetrics displayMetrics = new DisplayMetrics();
:
DisplayMetrics
现在,您可以使用以下方法获取屏幕的高度和宽度:
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
以像素为单位进行测量,您可以通过以下方式更改高度:
displayMetrics.widthPixels // Width
displayMetrics.heightPixels // Height
答案 1 :(得分:0)
您可以使用
获取高度和宽度DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
mScreenWidth = displayMetrics.widthPixels;
mScreenHeight = displayMetrics.heightPixels;
答案 2 :(得分:0)
最简单的方法是放入一个不可见的视图并使用layout_weights
,但在我看来这不是正确的方法。我会使用ViewTreeObserver
final RelativeLayout layout = (RelativeLayout)findViewById(R.id.your_layout);
ViewTreeObserver vto = layout.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
VideoView videoView = layout.findViewById(R.id.videoViewSmile);
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(layout.getWidth(), layout.getHeight() / 2)
videoView.setLayoutParams(layoutParams);
videoView.invalidate();
layout.getViewTreeObserver().removeOnGlobalLayoutListener(this);
}
});
未经测试,但我希望您能看到一般的想法
答案 3 :(得分:0)
尝试使用linearlayout的重量特征
<div style="width:40px;height:100px;">
<div id="relative">
<div class="absolute">yellow</div>
</div>
<div id="relative" style="top: 54px">red</div>
</div>
#relative {
position: relative;
/* width: 40px; */
height: 80px;
background: #f00;
z-index: 0;
/* margin-top: 30px; */
}
.absolute {
position: absolute;
top: 0;
left: 0;
z-index: 12;
width: 200px;
height: 150px;
background: yellow;
}