我尝试使用此代码
<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” 但我仍然有相同的尺寸 所需的图像是
我现在有了这个
如何将图标更改为第一张图片?
答案 0 :(得分:20)
要减少动作图标之间的空间,您需要在styles.xml中创建一个actionButtonStyle并将其引用为您的主题(例如:&#34; AppTheme&#34;)。
第一步(把两句话):
<style name="AppTheme" parent="Theme.AppCompat.Light">
...
<item name="android:actionButtonStyle">@style/myActionButtonStyle</item>
<item name="actionButtonStyle">@style/myActionButtonStyle</item>
...
</style>
第二步(参数&#34; android:width&#34;是最大的秘密):
<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>
享受它
答案 1 :(得分: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 /字符串
actionBar = getActionBar();
for (int i=0; i < tabnames.length; i++)
{
每次我们获得一个tabname,我们都会为它添加一个图标
Drawable dr = getResources().getDrawable(ICONS[i]);
Bitmap bitmap = ((BitmapDrawable) dr).getBitmap();
Drawable d = new BitmapDrawable(getResources(),
Bitmap.createScaledBitmap(bitmap, 50, 50, true));
然后我们从数组中更改get图标,并将其设置为我们想要的任何大小的drawable,并将其添加到操作栏。
actionBar.addTab(actionBar.newTab().setText(tabnames[i])
.setIcon(d)
.setTabListener(this));
}
答案 2 :(得分:1)
我已经解决了将png文件移动到drawable-xhdpi文件夹的问题。
答案 3 :(得分:-1)
您可能会发现我的解决方案有些奇怪。但这实际上对我有用,这就是为什么我要分享它。
使用某些编辑软件(例如Photoshop或其他工具)来代替更改样式属性,而只是增加图像的填充。
这样做可以根据您的要求减小操作栏/工具栏图标的大小。