布局背景弄乱边距
Layout background messing on margin
我正在尝试为我的视频播放器制作一个修剪器
trimmer_bar.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/thumbsBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="40dp"
tools:background="@color/trimmerBarSelected">
<ImageView
android:id="@+id/leftThumb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription=""
android:scaleType="fitStart"
android:src="@drawable/ic_left_thumb" />
<ImageView
android:id="@+id/rightThumb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:contentDescription=""
android:scaleType="fitEnd"
android:src="@drawable/ic_right_thumb" />
</RelativeLayout>
<ImageView
android:id="@+id/progressIndicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="60dp"
android:layout_marginTop="3dp"
android:contentDescription=""
android:scaleType="centerCrop"
android:src="@android:drawable/btn_star_big_on" />
</FrameLayout>
activity_video_viewer:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#a8c71c"
tools:context=".activities.VideoTrimmerActivity">
<com.tomatedigital.instagram.longstories.ui.TrimmerBar
android:id="@+id/trimmerBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/trimmerBarSelected"
/>
</FrameLayout>
它的逻辑运行良好:当用户触摸时,我检测它是否在左拇指上的任何拇指和大小写上我调整 thumbsBar[=45= 的左边距], 右边的情况我调整右边距...
由于两个图像视图与边缘对齐,这种行为使它们移动...但是实际移动的是整个 RelativeLayout
问题甚至是调整边距和移动图像视图,相对布局仍然在边距区域显示背景
忽略整个计算,我使用以下方法设置边距:
this.thumbsBar= (RelativeLayout) findViewById(R.id.thumbsBar);
this.thumbsBarLayout = (LayoutParams) this.thumbsBar.getLayoutParams();
this.thumbsBarLayout.leftMargin = this.leftMargin;
this.thumbsBarLayout.rightMargin = this.rightMargin;
this.thumbsBar.setLayoutParams(this.thumbsBarLayout);
============================================= ==================
更新:
为了更容易理解
我有这个:
我应该有:
com.tomatedigital.instagram.longstories.ui.TrimmerBar
与您的 RelativeLayout 具有相同的背景,宽度为 match_parent。你并没有真正指定你的布局是如何加载的,我假设它在你的自定义视图中。
作为测试,更改自定义视图的背景颜色以查看您在边距中看到的背景是来自 RelativeLayout 还是自定义视图。我的猜测是它来自自定义视图,更改自定义视图中的背景颜色将解决您的问题。
我正在尝试为我的视频播放器制作一个修剪器
trimmer_bar.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/thumbsBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="40dp"
tools:background="@color/trimmerBarSelected">
<ImageView
android:id="@+id/leftThumb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription=""
android:scaleType="fitStart"
android:src="@drawable/ic_left_thumb" />
<ImageView
android:id="@+id/rightThumb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:contentDescription=""
android:scaleType="fitEnd"
android:src="@drawable/ic_right_thumb" />
</RelativeLayout>
<ImageView
android:id="@+id/progressIndicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="60dp"
android:layout_marginTop="3dp"
android:contentDescription=""
android:scaleType="centerCrop"
android:src="@android:drawable/btn_star_big_on" />
</FrameLayout>
activity_video_viewer:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#a8c71c"
tools:context=".activities.VideoTrimmerActivity">
<com.tomatedigital.instagram.longstories.ui.TrimmerBar
android:id="@+id/trimmerBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/trimmerBarSelected"
/>
</FrameLayout>
它的逻辑运行良好:当用户触摸时,我检测它是否在左拇指上的任何拇指和大小写上我调整 thumbsBar[=45= 的左边距], 右边的情况我调整右边距...
由于两个图像视图与边缘对齐,这种行为使它们移动...但是实际移动的是整个 RelativeLayout
问题甚至是调整边距和移动图像视图,相对布局仍然在边距区域显示背景
忽略整个计算,我使用以下方法设置边距:
this.thumbsBar= (RelativeLayout) findViewById(R.id.thumbsBar);
this.thumbsBarLayout = (LayoutParams) this.thumbsBar.getLayoutParams();
this.thumbsBarLayout.leftMargin = this.leftMargin;
this.thumbsBarLayout.rightMargin = this.rightMargin;
this.thumbsBar.setLayoutParams(this.thumbsBarLayout);
============================================= ==================
更新:
为了更容易理解
我有这个:
我应该有:
com.tomatedigital.instagram.longstories.ui.TrimmerBar
与您的 RelativeLayout 具有相同的背景,宽度为 match_parent。你并没有真正指定你的布局是如何加载的,我假设它在你的自定义视图中。
作为测试,更改自定义视图的背景颜色以查看您在边距中看到的背景是来自 RelativeLayout 还是自定义视图。我的猜测是它来自自定义视图,更改自定义视图中的背景颜色将解决您的问题。