我有一个名为“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);
RelativeLayout名为Dress改变大小,占据整个RootView,基本上是整个活动,减去动作栏。
我拍摄了连衣裙布局的截图。所以当photoSorter在RootLayout(不是连衣裙布局)中时,就像这样:
photoSorter = new MultitouchImagesView(this.getApplicationContext());
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
addContentView(photoSorter, params);
布局连衣裙尺寸正确,我得到了这个我想要的截图:
但我需要在Dress Layout中使用PhotoSorter,这样我就可以将它包含在我的截图中,而不是黑色条带。当我将photoSortr添加到连衣裙布局时,如下所示:
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添加到连衣裙布局?
感谢。
答案 0 :(得分:1)
我通过在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的截图。
答案 1 :(得分:0)
以下内容应该有效
<RelativeLayout android:id="@+id/Dress"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="...">
<ImageView
android:id="@+id/imageViewDress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
...
android:scaleType="fitXY" />
编辑:
您可以将以下规则添加到您的参数中,以便在您想要的时候将其放在其他内容上。这是我尝试找出你所要求的第三次尝试,如果它不是你需要的,你必须自己弄清楚,因为你是懒惰的,不会做草图试图解释显然你想要它如何布局
params.addRule(RelativeLayout.CENTER_IN_PARENT);