编辑4: 我通过创建一个更大的字体来解决它,一个填充空间的字体。见下面发布的解决方案
编辑3: 我得出的结论是,我所说的问题无法解决。问题是字体没有填满图像空间,因为它们为j下降和大写字母上方的变音符号留下了空间。通过进一步搜索,我发现负填充,这显然是我需要的,是未定义的,所以可以做任何事情。
一种解决方案是创建填充整个图像空间的自定义字体。另一个是下面的建议使用图像按钮,但我增加的复杂性需要在焦点上改变颜色和基本图像在程序状态上的变化使得解决方案难以解决这个问题。
编辑2:添加了屏幕截图
编辑:在下面添加了drawable代码。
我已经尝试了我在stackoverflow上找到的每个例子以及Google的每个答案。我昨晚至少花了3个小时才放弃。如果有人知道答案,我肯定可以对此使用一些帮助。
我的Android应用程序上的按钮受到限制,因为按钮只能是如此之大,而且它们中的文字需要在明亮的日光下可读,所以它们需要很大。解决方案很明显,使文本比按钮小一个像素。换句话说,使填充变小。 android:paddingTop =“ - 10sp”什么都不做。我已经尝试了我能想到的一切。为了清楚起见,我希望按钮内部文本的顶部和底部与按钮本身边缘之间的空间非常小。
以下是我的一个按钮示例:
<Button
android:id="@+id/buttonSetTgt"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/textHeader"
android:layout_alignParentLeft="true"
android:background="@drawable/button_start"
android:textColor="@android:color/white"
android:onClick="onSetTgt"
android:paddingLeft="6sp"
android:paddingRight="6sp"
android:paddingTop="0sp"
android:paddingBottom="0sp"
android:text="◎"
android:textSize="@dimen/menu"
android:textStyle="bold" />
button_start有一些颜色和圆角定义。
显示填充顶部和底部为零,但负数不起作用,因此0sp或-10sp是等效的。
以下是drawable的代码:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_focused="true" >
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#f07304"/>
<corners android:radius="7dp"/>
</shape>
</item>
<item>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#222222"/>
<corners android:radius="7dp"/>
</shape>
</item>
答案 0 :(得分:1)
提供了一个很好的设施... Imagebutton ...
根据需要设计图像(jpeg或png)...根据需要随意放置文字,只需设置android:src="@drawable/yourimage
在这里,你会看到你想要的样子......
您可以将ImageButton作为普通按钮处理
尝试实现这个......
答案 1 :(得分:0)
尝试使用margin而不是padding。此外,您的按钮背景是否足够宽以容纳文本,同时保留其比例?
答案 2 :(得分:0)
我发现你不能指定负填充,所以解决方法是让字体本身变大,几乎一直到填充开始的地方。这意味着t字体需要一直填充区域到重点区域的顶部,一直到下降区域的底部。我所做的是通过CR8Software Solutions找到了一个名为Type 3.2的程序。您加载您喜欢的字体并复制其中一个缩放操作以获得约1.56的比例因子,对基线和字体边缘进行一些调整并保存。我可能会变得更大,实际上超过了重点线的顶部。如果我再次这样做,我会加载一个表单字符字体来真正看到字体空间的位置。试用版允许你节省大约大约R,所以在我的情况下,我只需要几个字母就可以了。现在我将字体加载到&#34; assets&#34;文件夹和代码的onCreate部分中添加的代码如下:
Typeface tf = Typeface.createFromAsset(this.getAssets(), "startline.ttf");
Button button = (Button) findViewById(R.id.buttonSync);
button.setTypeface(tf);
Button button2 = (Button) findViewById(R.id.buttonSetTgt);
button2.setTypeface(tf);
etc...
这允许我更改字体和按钮的大小,而无需创建新图像和所有背景,这样工作正常。