我正在创建一个简单的登录活动,我正在尝试使edittext在所有设备上看起来都一样。在Android Studio中,它在所有API上看起来都是一样的,但在真实设备上它看起来非常不同。我能做些什么来实现它们看起来一样?
这就是它在Android Studio中的外观
这就是它在真实设备上的外观
任何帮助将不胜感激。我还在学习Android开发。
答案 0 :(得分:2)
小部件的背景依赖于 API 级别。
将此xml设置为EditText
背景属性。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" android:padding="10dp">
<solid android:color="#4C000000"/>
<corners android:bottomRightRadius="5dp"
android:bottomLeftRadius="5dp"
android:topLeftRadius="5dp"
android:topRightRadius="5dp"/>
</shape>
这与每个API上的EditText
具有相同的外观。
答案 1 :(得分:1)
它完全取决于您使用模拟器的方式。模拟器,因为在Android Studio之前的通用AVD(在Eclipse中使用,或者那种IDE),将使用默认外观来显示开发环境中的小部件和组件。
您可以安装制造商设备外观以模拟您的模拟器作为原始模拟器。看看description from the Samsung official website:
模拟器皮肤是在模拟GALAXY S2上测试Android应用程序的简单方法。但是,仿真不会模拟实际设备的所有功能。仿真允许您查看应用程序的显示如何缩放到GALAXY S2的屏幕。
在这种情况下,它会提高您的可测试性,但也建议您始终在真实设备中进行测试以获得更好的结果。
答案 2 :(得分:0)
可能是因为您没有为您的应用程序指定主题。并根据基于以下规则的documentation android选择主题:
如果应用未在其清单中明确请求主题,则为Android 4.0将根据应用程序的targetSdkVersion确定默认主题,以维持应用程序的原始期望:For 值小于11,@ android:style / Theme;在11到13之间 @android:风格/ Theme.Holo; 14岁及以上 @android:风格/ Theme.DeviceDefault
您可以在以下thread中找到更多详细信息。
答案 3 :(得分:0)
在drawable文件夹中创建edittext_style.xml,
<?xml version="1.0" encoding="utf-8"?>
<item><layer-list>
<item><shape>
<gradient android:angle="90" android:endColor="#ffffff" android:startColor="#ffffff" android:type="linear" />
<stroke android:width="1dp" android:color="#CECFCE" />
<corners android:radius="0dp" />
<padding android:bottom="3dp" android:left="3dp" android:right="8dp" android:top="3dp" />
</shape></item>
</layer-list></item>
在style.xml中定义下面的代码,
<!-- Edittext Style -->
<style name="edittext_style">
<item name="android:background">@drawable/edittext_style</item>
<item name="android:layout_marginLeft">10dp</item>
<item name="android:layout_marginRight">10dp</item>
<item name="android:layout_marginBottom">10dp</item>
<item name="android:paddingLeft">8dp</item>
<item name="android:paddingTop">5dp</item>
<item name="android:paddingBottom">5dp</item>
<item name="android:popupBackground">#DFFFFFFF</item>
</style>
然后你去,根据你的要求使用颜色代码,
<EditText
android:id="@+id/email"
style="@style/edittext_style"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />