我有一个名为“ Dress”的RelativeLayout,其WRAP_CONTENT的LayoutParams。它里面的所有内容都是一个ImageView,因此它与ImageView的大小相同。当我在OnCreate的RelativeLayout中添加一个视图时,如下所示:
photoSorter = new MultitouchImagesView(this.getApplicationContext());
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
((ViewGroup) findViewById(id.Dress)).addView(photoSorter, params);
名为Dress的RelativeLayout会更改大小,以占用整个RootView(基本上是整个活动)减去actionbar。
我拍摄了“连衣裙布局”的屏幕截图。因此,当photoSorter处于RootLayout(而不是Dress Layout)中时,如下所示:
photoSorter = new MultitouchImagesView(this.getApplicationContext());
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
addContentView(photoSorter, params);
Layout Dress尺寸正确,我得到了以下屏幕截图:
但是我需要在“连衣裙布局”中使用PhotoSorter,以便可以将其包含在屏幕截图中,而不会出现黑条。当我像这样将photoSortr添加到Dress Layout中时:
photoSorter = new MultitouchImagesView(this.getApplicationContext());
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
((ViewGroup) findViewById(id.Dress)).addView(photoSorter, params);
它使着装图占据了整个屏幕,因此着装图的屏幕截图如下所示:
这是我的屏幕截图代码:
public Bitmap takeScreenshot() {
View v = findViewById(R.id.Dress);
v.setDrawingCacheEnabled(true);
return v.getDrawingCache();
}
这是我的活动XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:longClickable="true"
android:onClick="deleteImage"
android:background="@android:color/transparent"
tools:context=".MainActivity" >
<RelativeLayout
android:id="@+id/Dress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent" >
<ImageView
android:id="@+id/imageViewDress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:adjustViewBounds="true"
android:background="#00CED1"
android:padding="10dp"
android:scaleType="centerInside" />
</RelativeLayout>
<com.edmodo.cropper.CropImageView
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:id="@+id/CropImageView"
android:background="@android:color/transparent"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
另外,当我将com.edmodo.cropper.CropImageView添加到DressLayout时,它也使Dress Layout也占据了整个活动。因此,在“连衣裙布局”中添加任何内容都会使其变得更大。
如何在不使Dress Layout占用整个活动大小的情况下将photoSorter添加到Dress Layout中?
谢谢。
最佳答案
我通过尝试使用XML进行管理。关键是将Dress与imageViewDress对齐,我可以使其他两边对齐,而不仅仅是底部。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:longClickable="true"
android:background="@android:color/transparent"
tools:context=".DressingRoomActivity" >
<RelativeLayout
android:id="@+id/DressBig"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true">
<ImageView
android:id="@+id/imageViewDress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:adjustViewBounds="true"
android:scaleType="centerInside" />
<RelativeLayout
android:id="@+id/Dress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:layout_alignBottom="@+id/imageViewDress"
android:layout_centerInParent="true" >
</RelativeLayout>
</RelativeLayout>
<com.edmodo.cropper.CropImageView
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:id="@+id/CropImageView"
android:background="@android:color/transparent"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</RelativeLayout>
此XML,然后以编程方式将photoSorter添加到Dress,然后拍摄DressBig的屏幕截图。
关于android - 将 View 添加到RelativeLayout会更改其大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21278537/