Android:setpadding无法使用imageview

时间:2015-02-24 10:37:25

标签: android imageview padding

我有两个图像视图,我想在用户点击它们时创建一个类似边框的效果。 我已将两个图像视图的背景设置为颜色。现在,当用户点击图像时,我在imageview上设置了一些填充,以便创建一个类似边框的效果。但不幸的是,它没有发生。

这是我的java代码:

public void imageClick(View view)
{
switch(view.getId())
{
case (R.id.imageView1):
     image1.setPadding(10,10,10,10);
     image2.setPadding(0,0,0,0);
     break;
case (R.id.imageView2):
     image1.setPadding(0,0,0,0);
     image2.setPadding(10,10,10,10);
     break;
}
}

我无法理解为什么单击图像时没有发生任何事情。我试过了两个

android:cropToPadding = "true"

android:cropToPadding = "false"

但同样没有结果。

我对imageViews的xml代码:

<ImageView
                android:layout_width="0dp"
                android:id="@+id/imageRegion1"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:onClick="imageClick"
                    android:cropToPadding="false"
                    android:background="#fffff300" />

                <ImageView
                    android:id="@+id/imageRegion2"
                    android:layout_width="0dp"
                    android:layout_height="match_parent"
                    android:layout_weight="1"
                    android:onClick="imageClick"
                    android:cropToPadding="false"
                    android:background="#fffff300" />

我通过以下方式动态设置图像视图:

image1.setImageBitmap(bitmap1);
image2.setImageBitmap(bitmap2);

2 个答案:

答案 0 :(得分:0)

因为看起来你最有可能使用weightSum&amp; layout_weight机制可以平等或合理地计算imageview的宽度。

如果我就在这里,在这种情况下,当您设置填充时,它不会对已经膨胀的视图进行任何更改。正如您所料,设置填充值会降低宽度和宽度。高度。但事实并非如此。因为,由于权重计算,它将采用先前的宽度/高度值,因此将忽略填充。

我希望这可以帮助您解决问题。

答案 1 :(得分:0)

 <LinearLayout
    android:id="@+id/row_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:visibility="visible" >

    <ImageView
        android:id="@+id/imageRegion1"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:background="#fffff300"
        android:cropToPadding="false"
        android:onClick="imageClick" />

    <ImageView
        android:id="@+id/imageRegion2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:background="#fffff300"
        android:cropToPadding="false"
        android:onClick="imageClick" />
</LinearLayout>

我试过上面这个。对我来说工作正常。再次