Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.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
ImageButton在模拟器或物理设备上的Android Studio上不可见_Android_Calculator - Fatal编程技术网

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

ImageButton在模拟器或物理设备上的Android Studio上不可见,android,calculator,Android,Calculator,你好,伟大的社区。我是Android新手,正在尝试构建一个计算器,这是我第一次遇到这个问题,我不确定到底是什么问题。我添加了按钮,除了图像按钮外,它们在emulator上看起来不错。代码如下,我希望得到帮助 最后一个按钮分割不可见,我添加了四个这样的线性布局,带有1、2、3、减号、4、5、6、乘法按钮,不幸的是,所有这些乘法、除法、加号和减号按钮都不可见。 我刚刚开始,希望知道我错在哪里,我需要纠正什么 更新 看到上面的图片,我已经附上。如果我将ImageButton更改为ImageBu

你好,伟大的社区。我是Android新手,正在尝试构建一个计算器,这是我第一次遇到这个问题,我不确定到底是什么问题。我添加了
按钮
,除了
图像按钮
外,它们在emulator上看起来不错。代码如下,我希望得到帮助


最后一个按钮分割不可见,我添加了四个这样的线性布局,带有1、2、3、减号、4、5、6、乘法按钮,不幸的是,所有这些乘法、除法、加号和减号
按钮都不可见。
我刚刚开始,希望知道我错在哪里,我需要纠正什么

更新

看到上面的图片,我已经附上。如果我将
ImageButton
更改为
ImageButton,则emulator中可见的
视图
中有
按钮
,如等号。我已经更改了我的
png的
文件,但我无法理解我做错了什么

谢谢

如果您使用的是重量,请使用0dp的宽度(或垂直线性布局的高度)

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

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

我已经解决了这个问题,现在可以使用了,因为我只在你的every
ImageButton
中更改了一行,即android:src=“@Drawable/equalsymbol”
而不是
app:srcCompat=“@drawable/equalsymbol”
我已经在评论部分向您提到过

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

编辑

现在的问题是为什么
app.srcCompat
不工作

这是因为您使用
活动扩展了
您的
MainAcyivity.java

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }
}
<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>
 android {
  defaultConfig {
    vectorDrawables {
      useSupportLibrary = true
    }
  }
}
您必须使用AppCompatActivity扩展

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }
}
<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>
 android {
  defaultConfig {
    vectorDrawables {
      useSupportLibrary = true
    }
  }
}
需要更新您的
gradle.build

您必须添加以下行-:

vectorDrawables {
      useSupportLibrary = true
    }
见详细答案

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

更改1

MainActivity.java

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }
}
<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>
 android {
  defaultConfig {
    vectorDrawables {
      useSupportLibrary = true
    }
  }
}
更改2

style.xml

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  }
}
<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>
 android {
  defaultConfig {
    vectorDrawables {
      useSupportLibrary = true
    }
  }
}
现在,您可以在应用程序中使用
app:srcCompat=“@drawable/equalsymbol”

请看,下面的第二个屏幕截图,我已经使用了
app:srcCompat
,现在它可以工作了

现在,一切正常


因此,按照上面提到的方式进行更改。Happy Coding

谢谢Nabin,但这不起作用。它将按钮进一步向左移动,但没有显示图像按钮。您对行中的所有4个按钮都这样做了吗?是的,Nabin,我只是按照您的建议重试了。在activity_main中的蓝图中,我看到了所有带白色边框的按钮,它们都是可见的,但没有这些图像按钮是灰色边框,它们都是不可见的。我还附上了它在emulator和studio上的外观图像。您使用了
android:background=“#00000000“
在图像按钮中,表示背景透明。试试不同的颜色看看发生了什么。此外,您的图像可能很小。在图像按钮中使用scaleType fitCenter正如您所建议的,我将背景的十六进制代码更改为#006699,它得到了蓝色框,至少显示了一些东西,但没有显示除法符号。你认为drawable image有问题吗?或者与之相关的东西该代码在我这边工作可能是svg图像有问题我想你是对的,我将这些更改为普通按钮,效果很好,当背景更改时,图像按钮也工作,寻找其他图像以查看是否修复,感谢您在图像@pankajt中使用svg或png文件的是什么?它们是png。我自己刚刚创建了新的png,并尝试再次添加图像按钮,但当它显示在屏幕上时,它在模拟器或物理设备上仍然不可见。原因可能是什么?请在
app:srcCompat=“@drawable/divide”/>
的位置尝试
android:src=“@drawable/divide”/>
我还没有进入java类,我的图像按钮在物理设备或模拟器的布局中不可见。你认为在MainActivity.java中声明可能会有帮助吗?你只是天才Vikas,它确实起作用了,我看到所有的答案都不起作用而发疯了,在互联网上搜索也是徒劳的,你是天使,再次感谢你。我既不是天才也不是天使…伙计…很高兴它为你工作。。。很高兴再次感谢你,维卡斯,你真棒,善良!哈哈哈…欢迎@PankajDhawan顺便说一句,我也是德里人。老兄,我面临着挑战,但我对学习Android很感兴趣。我不知道从哪里开始,因为YouTube对我来说太快了,我无法理解它们。我在UDE上买了课程,因为我的工作时间有限,不能让我学习,但我真的想更流利。有什么建议吗?另外,我真的很想亲自见到你来感谢你,像你这样的人当然值得款待,因为感谢还不够:)