ImageView在动作栏中

时间:2018-05-13 18:27:25

标签: android

我试图将ImageView放在操作栏中,它可以工作,我可以为它设置动画和所有内容,但是,它需要太多的水平空间而且我不知道为什么。

这是我的菜单:

<?xml version="1.0" encoding="utf-8"?>

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/my_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light">

    <ImageView
        android:id="@+id/dicebutton"
        android:layout_width="wrap_content"
        android:layout_height="?attr/actionBarSize"
        android:contentDescription="dice"
        android:src="@drawable/dice_1" />
</android.support.v7.widget.Toolbar>

这是活动中的代码:

if (myToolbar != null) {
        setSupportActionBar(myToolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(false);
        getSupportActionBar().setElevation(0);
        image = myToolbar.findViewById(R.id.dicebutton);
        if (image != null) {
            image.setImageResource(R.drawable.dice_1);
            image.setScaleX(0.5f);
            image.setScaleY(0.5f);
            image.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    rollDice(Helper.rand.nextInt(6) + 1, v);
                }
            });

        }

    }

以下是结果图: Result

我使用的图像是256x256骰子图像,为什么要扩大它以占用所有这些空间?

1 个答案:

答案 0 :(得分:2)

我之前在动作栏中绘制和调整视图时遇到了很多问题。我认为您应该尝试使用支持库工具栏,它可以让您在这种情况下获得更多控制权,同时支持菜单扩展内容,我记得: https://developer.android.com/training/appbar/setting-up

https://developer.android.com/reference/android/support/v7/widget/Toolbar

您可以将图像和其他视图置于其中,并进行更多控制。

更新答案: 我不确定这是否是你需要的但是尝试添加android:adjustViewBounds =&#34; true&#34;你的形象。

像这样:

enter image description here

这样: enter image description here