ImageButton在模拟器或物理设备上的Android Studio上不可见

时间:2017-10-01 04:06:15

标签: android calculator

大社区你好。我是Android的新手,并试图建立一个计算器,这是我第一次遇到这个问题,不确定是什么问题。我添加了buttons,除image button外,它们在模拟器上看起来很好。代码如下,我希望得到帮助。

Image

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingTop="10dp"
        android:weightSum="4">

        <Button
            android:id="@+id/button16"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_weight="1"
            android:background="#00000000"
            android:text="7"
            android:textColor="@android:color/background_dark"
            android:textSize="30sp"/>

        <Button
            android:id="@+id/button5"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_weight="1"
            android:background="#00000000"
            android:text="8"
            android:textColor="@android:color/background_dark"
            android:textSize="30sp"/>

        <Button
            android:id="@+id/button4"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_weight="1"
            android:background="#00000000"
            android:text="9"
            android:textColor="@android:color/background_dark"
            android:textSize="30sp"/>

        <ImageButton
            android:id="@+id/imageButton"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:layout_weight="1"
            android:background="#00000000"
            android:textColor="@android:color/background_dark"
            app:srcCompat="@drawable/divide"/>
    </LinearLayout>

最后一个按钮除法是不可见的,我添加了四个这样的线性布局,包括1,2,3,减号,4,5,6,乘法按钮,所有这些乘法,除法,加号和减号buttons不幸的是,我看不到。 我刚刚开始,并希望知道我在哪里错了,我需要解决的是什么。

更新

enter image description here

见上面我附上的图片。如果我将Views更改为Buttons,则模拟器中的可见ImageButtonviews。我已经更改了我的png's文件,但我无法解决我的错误

谢谢

3 个答案:

答案 0 :(得分:0)

如果使用重量,请使用0dp的宽度(或垂直LinearLayout的高度)。

android:layout_width = "0dp"
android:layout_height ="80dp"
android:layout_weight ="1"

答案 1 :(得分:0)

你是否在Java类中声明了botton,你的Drawable也有png中的文件,这是处理img文件的最佳方式。

答案 2 :(得分:0)

我已经解决了这个问题,现在这个问题已经解决了,因为我只更改了一行ImageButton android:src="@drawable/equalsymbol"而不是app:srcCompat="@drawable/equalsymbol"我已经提到过你了评论部分

请参阅下面附带的屏幕截图 - :

enter image description here

修改

现在,问题是app.srcCompat无效的原因

这是因为您 extend MainAcyivity.java Activity

您必须 Extend AppCompatActivity

需要更新gradle.build

您必须添加以下行 - :

vectorDrawables {
      useSupportLibrary = true
    }

详细解答here

然后,我再次对您的应用进行一些更改

更改1

<强> MainActivity.java

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }
}

更改2

<强> style.xml

<resources>

<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
    <!-- Customize your theme here. -->
    <!--<item name="android:colorPrimary">@color/colorPrimary</item>-->
    <!--<item name="android:colorPrimaryDark">@color/colorPrimaryDark</item>-->
    <!--<item name="android:colorAccent">@color/colorAccent</item>-->
</style>

更改3

<强> build.gradle

 android {
  defaultConfig {
    vectorDrawables {
      useSupportLibrary = true
    }
  }
}

现在,您可以在应用中使用app:srcCompat="@drawable/equalsymbol"

请参阅下面的第二个屏幕截图,我使用了app:srcCompat,现在可以使用了

enter image description here

现在,一切正常。

所以,如上所述进行更改。快乐编码