ImageButton在模拟器或物理设备上的Android Studio上不可见
你好,伟大的社区。我是Android新手,正在尝试构建一个计算器,这是我第一次遇到这个问题,我不确定到底是什么问题。我添加了ImageButton在模拟器或物理设备上的Android Studio上不可见,android,calculator,Android,Calculator,你好,伟大的社区。我是Android新手,正在尝试构建一个计算器,这是我第一次遇到这个问题,我不确定到底是什么问题。我添加了按钮,除了图像按钮外,它们在emulator上看起来不错。代码如下,我希望得到帮助 最后一个按钮分割不可见,我添加了四个这样的线性布局,带有1、2、3、减号、4、5、6、乘法按钮,不幸的是,所有这些乘法、除法、加号和减号按钮都不可见。 我刚刚开始,希望知道我错在哪里,我需要纠正什么 更新 看到上面的图片,我已经附上。如果我将ImageButton更改为ImageBu
按钮
,除了图像按钮
外,它们在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文件的最佳方式。我已经解决了这个问题,现在可以使用了,因为我只在你的everyImageButton
中更改了一行,即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上买了课程,因为我的工作时间有限,不能让我学习,但我真的想更流利。有什么建议吗?另外,我真的很想亲自见到你来感谢你,像你这样的人当然值得款待,因为感谢还不够:)