如何移动与其图像背景相关的 CheckBox? (Android)

How can I move a CheckBox in relation to its image background? (Android)

我正在使用以下代码行为复选框设置背景图片:

 checkBox.setBackgroundResource(R.drawable.myImage);

但是,复选框会自动定位到背景图像的左中部。我希望复选框位于背景图像的右下角。我怎样才能做到这一点?谢谢!

您可以使用它在页面右下角对齐您的CheckBox

<FrameLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <ImageView
            android:src="@drawable/myImage"
            android:layout_width="match_parent"
            android:layout_height="200dp" />
        <CheckBox
            android:text="CheckBox"
            android:layout_gravity="right|bottom"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/checkBox1" />
    </FrameLayout>

如果您的父布局是相对的,请使用此代码:

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
checkbox.setLayoutParams(params);

就是这样:)

对于LinearLayout它将是:

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
params.gravity = Gravity.RIGHT | Gravity.BOTTOM;
checkbox.setLayoutParams(params);

更新

实际上要将它对齐到它自己的 space 你可以简单地做 checkbox.setGravity(Gravity.RIGHT | Gravity.BOTTOM);

重要提示

只有当您的 CheckBox 宽度和高度不是 wrap_content 时,您才可以这样做!另一种方式它不会移动到任何地方。所以你应该经常指定宽度和高度,例如 30dp,但我不建议你这样做。