【问题标题】:Making Android EditText look the same使 Android EditText 看起来一样
【发布时间】:2014-06-28 15:12:27
【问题描述】:

我正在创建一个简单的登录活动,并试图使编辑文本在所有设备上看起来都相同。在 Android Studio 中,它在所有 API 上看起来都一样,但在真实设备上看起来却大不相同。我该怎么做才能使它们看起来都一样?

这是它在 Android Studio 中的样子

这就是它在真实设备上的样子

任何帮助将不胜感激。我还在学习 Android 开发。

【问题讨论】:

  • 不要相信模拟器!!!

标签: android android-edittext


【解决方案1】:

小部件的背景是 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 具有相同的外观和感觉。

【讨论】:

  • 谢谢。我使用了您的答案并为其添加了底部边框,并模拟了它在编辑器中的显示方式。
  • @user2703467 很高兴帮助你交配 :)
【解决方案2】:

这完全取决于您使用模拟器的方式。模拟器,从常见的 AVD(在 Eclipse 或那种 IDE 中使用)直到 Android Studio,将使用默认皮肤来显示开发环境中的小部件和组件。

您可以安装制造商的设备皮肤来模拟您的模拟器作为原始模拟器。看那个description from the Samsung official website

模拟器皮肤是一种在模拟的 GALAXY S2 上测试您的 Android 应用程序的简单方法。但是,该仿真并未模拟实际设备的所有功能。该仿真允许您查看应用程序的显示如何缩放到 GALAXY S2 的屏幕。

在这种情况下,它会提高您的可测试性,但也建议始终在真实设备中进行测试以获得更好的结果。

【讨论】:

    【解决方案3】:

    这可能是因为您没有为您的应用程序指定主题。并且根据documentationandroid选择主题的规则如下:

    如果应用未在其清单中明确请求主题,Android 4.0 将根据应用的 targetSdkVersion 确定默认主题,以保持应用的原始预期:对于 值小于 11,@android:style/Theme; 11 到 13 之间 @android:style/Theme.Holo; 14岁及以上 @android:style/Theme.DeviceDefault.

    您可以在以下thread找到更多详细信息。

    【讨论】:

    • 我在清单文件中将主题指定为 android:Theme.Holo.Light.DarkActionBar。
    【解决方案4】:

    在你的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" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多