Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在动态相对图像中居中并带有负边距_Android_Alignment - Fatal编程技术网

Android 在动态相对图像中居中并带有负边距

Android 在动态相对图像中居中并带有负边距,android,alignment,Android,Alignment,我试图创建一个布局,其中有一组水平居中的重叠扑克牌。重叠起作用,但卡未居中。如果我在卡片周围画一个边框,那么相对布局似乎包含了如果没有应用负边距将使用的所有区域。然后将整个区域居中 如何确保相对布局的范围仅为包含扑克牌图像视图的区域,以便水平居中放置扑克牌 这是相对论的定义 <RelativeLayout android:id="@+id/tNorth" android:layout_width="wrap_content" androi

我试图创建一个布局,其中有一组水平居中的重叠扑克牌。重叠起作用,但卡未居中。如果我在卡片周围画一个边框,那么相对布局似乎包含了如果没有应用负边距将使用的所有区域。然后将整个区域居中

如何确保相对布局的范围仅为包含扑克牌图像视图的区域,以便水平居中放置扑克牌

这是相对论的定义

  <RelativeLayout
        android:id="@+id/tNorth"
        android:layout_width="wrap_content"
        android:layout_height="100dp"
        android:layout_above="@+id/vCardTable"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="15sp"
        android:background="@drawable/losing_border"
        android:layout_marginBottom="15sp" >
    </RelativeLayout>

您可以在带有填充的图片中设置边框的ImageResource和ImageBackground,如下所示:

   <ImageView
        android:id="@+id/mImageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@string/app_name"
        android:padding="4dp"
        android:scaleType="fitCenter"
        android:background="@drawable/yourImageInCenter"
        android:src="@drawable/yourBorderForImage" />

我通过设置ImageView的宽度和高度来解决这个问题

            final int hPixels = (int) (100 * scale + 0.5f);
            final int wPixels = (int) (70 * scale + 0.5f);
            final RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(wPixels, hPixels);

设置好后,布局正确,我还可以删除setAdjustViewBounds

谢谢Rahil,我尝试过,但没有成功。扑克牌ImageView已将AdjustViewBounds设置为true,因为在缩放图像时我遇到问题,不确定这是否会导致问题。
    params.setGravity(Gravity.CENTER);
            final int hPixels = (int) (100 * scale + 0.5f);
            final int wPixels = (int) (70 * scale + 0.5f);
            final RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(wPixels, hPixels);