无法摆脱ImageButton

时间:2017-10-17 12:45:18

标签: java android xml

我正在使用Android应用程序,该应用程序有一些(下一步,后退,等等)Buttons这些都是圆形且透明的,我使用ImageButton来表示那些Buttons Button 1}},但问题是background周围总是有一个白色边框(我使用黑色ImageButton所以它非常难看)并且按钮永远不会显示为圆形显示为某种类型方形的形状。

这是我到目前为止所尝试的内容:

  1. activity_mypage.xml文件中android:background="@android:color/transparent" 的背景设置为

    android:background="?android:selectableItemBackground"
    

    android:background="?android:selectableItemBackgroundBorderless"
    

    android:background="@null"
    

    甚至

    myBtn.setBackgroundResource(0);
    

    但似乎没有什么能在.xml方面起作用。

  2. 我在MyPage.java文件上尝试了以下内容:

    myBtn.setBackground(null);  
    

    以及

    Button
  3. 我做的任何事情似乎都没有结果相同(尽管它从Button周围移除了灰色边框,但没有一个使Button完全透明)

    这是应用上述任何一项之前按钮的屏幕截图:
    Before Applying any of the above settings/attributes

    这是应用任何这些属性后相同xml的屏幕截图(如果我仅将其应用于Buttons或仅应用于java文件,或者仅适用于因为所有结果都是一样的):
      enter image description here

    这是我在xml中的<ImageButton android:id="@+id/my_btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="26dp" android:layout_marginEnd="37dp" android:layout_marginRight="37dp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintRight_toRightOf="parent" app:srcCompat="@mipmap/my_btn" tools:layout_constraintBottom_creator="1" tools:layout_constraintRight_creator="1" android:background="@android:color/transparent" /> 之一的xml代码:

           ImageButton myBtn= (ImageButton) findViewById(R.id.my_btn);
           myBtn.setBackground(null);
           myBtn.setBackgroundResource(0);
    

    以下是.java文件中的代码:

        $('body').on('click','a.btn_details',function(e){
                    e.preventDefault();
                    var _id = $(this).attr('id');
                    var _data = {'action': 'product_details','product_id':_id};
                    $.ajax({
                        method: 'POST',
                        url: '../common/products.php',
                        dataType: 'json',
                        data: _data,
                        success: function (resp) {
                            alert(resp.name);
                            return false;
                        },
                        error: function(resp){
                            alert("xd,vj,dfjbj");
                        }
                    });
                    $('#prd_list_cont').hide();
                    $('#prd_det_cont').show();
                }
    
    );
    

    我真的迷失了,我发现这个查询的每一个结果都提出了上述方法之一,但这些方法似乎都不适合我..

5 个答案:

答案 0 :(得分:0)

只需更改

android:background="@android:color/transparent"

android:background="@null"

答案 1 :(得分:0)

试试这个

android:src="@mipmap/yourimage"

而不是

app:srcCompat="@mipmap/my_btn"

答案 2 :(得分:0)

您可以使用ImageView代替ImageButton,因此不会出现背景问题

<ImageView
            android:id="@+id/my_btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="26dp"
            android:layout_marginEnd="37dp"
            android:layout_marginRight="37dp"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            android:src="@mipmap/my_btn"
        />

答案 3 :(得分:0)

将此添加到按钮

android:background="@drawable/template"

并在drawable文件夹中创建一个文件名 并将此代码添加到其中

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/btn2imagePressed"></item>
<item android:drawable="@drawable/btn1imageNotPressed"></item> </selector>

答案 4 :(得分:0)

因此,在阅读了一些已发布的答案并使用我的代码中的建议后,我注意到icon被错误地加载到我的mipmap目录而不是drawables中,这是因为当我导入icons时,我选择了New -> Image Asset而不是Vector Asset,这导致了我的图标&#39;失去透明度......

感谢大家的回复和答案。