gpt4 book ai didi

android - 按钮在不同的 Android 设备或版本上看起来不同

转载 作者:行者123 更新时间:2023-11-30 02:58:42 26 4
gpt4 key购买 nike

我有两个简单的按钮,想给它们一个自定义的外观,所以我只给了按钮一个背景颜色。这在运行 4.2 的 Htc One 上看起来不错,但是当我在旧的 Lg P925 上测试它时,按钮高度正好包裹了它的内容(就像默认填充消失一样)。

像这样:

enter image description here

所以我做了一些进一步的研究,发现我必须使用能够向按钮添加功能的状态列表绘制。

所以我是这样做的:

按钮.xml

 <selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_pressed="true" android:drawable="@drawable/button_pressed" />
<item android:state_focused="true" android:drawable="@drawable/button_focused" />
<item android:drawable="@drawable/button_normal" />

</selector>

以按钮为中心

    <shape xmlns:android="http://schemas.android.com/apk/res/android"   
android:shape="rectangle">
<solid android:color="@color/greybutton"/>
<corners android:radius="0dp" />
<stroke android:color="@color/greybutton" android:width="2dp" />
<padding android:top="5dp" android:bottom="5dp"
android:left="10dp"android:right="10dp" />
</shape>

按下按钮

    <shape xmlns:android="http://schemas.android.com/apk/res/android"      
android:shape="rectangle">
<solid android:color="@color/greybutton"/>
<corners android:radius="0dp" />
<stroke android:color="@color/greybutton" android:width="2dp" />
<padding android:top="5dp" android:bottom="5dp" android:left="10dp"
android:right="10dp" />
</shape>

按钮正常

    <shape xmlns:android="http://schemas.android.com/apk/res/android"  
android:shape="rectangle">
<gradient android:startColor="#FFFFFFFF" android:endColor="#A4A4A4"
android:angle="270" />
<solid android:color="@color/darkerGrey"/>
<corners android:radius="0dp" />
<padding android:top="5dp" android:bottom="5dp" android:left="10dp"
android:right="10dp"/>
</shape>

风格

  <style name="button" parent="@android:style/Widget.Button">
<item name="android:background">@drawable/button</item>
</style>

然后我将样式添加到按钮:

           <Button
android:id="@+id/SignUpBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:text="@string/CreateAcct"
android:textColor="@color/white"
style="@style/button"
android:textSize="17sp"
/>

这是我得到的:

在我的 HTC(运行 4.2)上

这里的按钮更大,因为它将 5dp 的顶部和底部填充(来 self 的状态可绘制对象 xml)添加到按钮的默认系统填充。

在我运行 2.3 的 Lg P925 上,我得到这个:

enter image description here

这些按钮比我的 htc 上的按钮小。似乎当我为按钮添加背景时,它摆脱了默认填充。我只是不知道。

如何创建一个在所有设备上看起来都一样的按钮?

最佳答案

*文本字体因设备而异,因此使用字体类来设置按钮的字体 *

像这样

在 assets 文件夹中创建文件夹 font 并粘贴 abc.ttf 文件。基本上 .ttf 文件是一个包含字体样式的文件,您无法免费下载它

Button txt = (Button) findViewById(R.id.custom_font);  
Typeface font = Typeface.createFromAsset(getAssets(), "abc.TTF");
txt.setTypeface(font);

或者你可以像这样使用android的预定义字体

<Button 
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:typeface="sans"/>

sans,monospace,serif 是预定义字体

享受编码

它会起作用

关于android - 按钮在不同的 Android 设备或版本上看起来不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22892494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com