23

我尝试使用此代码

<item
        android:id="@+id/male_button"
        android:layout_width="46dp"
        android:layout_height="56dp"
        android:layout_gravity="right"
        android:icon="@drawable/icon_male"
        android:showAsAction="always"
        android:title="i"/>
    <item
        android:id="@+id/female_button"
        android:layout_width="46dp"
        android:layout_height="56dp"
        android:layout_gravity="right"
        android:icon="@drawable/icon_female"
        android:showAsAction="always"
        android:title="i"/>

我将 android:layout_width="46dp" 更改为 android:layout_width="30dp" 但我仍然具有所需图像的相同大小

在此处输入图像描述

我现在有了这个

在此处输入图像描述

如何将图标更改为第一张图片?

4

4 回答 4

23

要减少动作图标之间的空间,您需要在您的 styles.xml 中创建一个 actionButtonStyle 并将其引用为您的主题(例如:“AppTheme”)。

第一步(放两句):

<style name="AppTheme" parent="Theme.AppCompat.Light">
  ...
  <item name="android:actionButtonStyle">@style/myActionButtonStyle</item>
  <item name="actionButtonStyle">@style/myActionButtonStyle</item>
  ...
</style>

第二步(参数“android:width”是大秘密):

<style name="myActionButtonStyle" parent="Widget.AppCompat.ActionButton">
    <item name="android:minWidth">30dp</item>
    <item name="android:maxWidth">48dp</item>
    <item name="android:width">38dp</item>
</style>

好好享受

于 2015-12-18T18:31:17.273 回答
2
private String[] tabnames;
final int[] ICONS = new int[] {
        R.drawable.a,
        R.drawable.b,
        R.drawable.c,}
tabnames = getResources().getStringArray(R.array.tabnames);

这些是此处以及可绘制名称和选项卡名称的 res/values/strings 中组成的数组

actionBar = getActionBar();
    for (int i=0; i < tabnames.length; i++)
    {

每次我们得到一个标签名时,我们都会为它添加一个图标

        Drawable dr = getResources().getDrawable(ICONS[i]);
        Bitmap bitmap = ((BitmapDrawable) dr).getBitmap();
        Drawable d = new BitmapDrawable(getResources(), 
        Bitmap.createScaledBitmap(bitmap, 50, 50, true));

然后我们从数组中更改 get icon 并使其成为我们想要的任何大小的可绘制对象并将其添加到操作栏。

    actionBar.addTab(actionBar.newTab().setText(tabnames[i])
                             .setIcon(d)
                             .setTabListener(this));
    }
于 2015-12-23T14:55:19.923 回答
0

我已经通过将 png 文件移动到 drawable-xhdpi 文件夹来解决。

于 2016-04-28T20:38:47.023 回答
0

你可能会觉得我的解决方案有点奇怪。但它实际上对我有用,这就是我分享它的原因。

无需更改样式属性,只需使用一些编辑软件(如 Photoshop 或其他软件)增加图像的填充。

通过这样做,操作栏/工具栏图标大小会根据您的要求减小。

于 2018-08-02T06:29:31.783 回答