【问题标题】:Android ImageButton setMaxheight not having effectAndroid ImageButton setMaxheight 没有效果
【发布时间】:2013-01-02 06:21:06
【问题描述】:

我使用表格布局来使用权重来布局按钮,按钮的大小为 0dip 或 wrap_content,因此它们会按其权重展开。

我正在尝试将按钮转换为 ImageButton 并将图像设置为按钮大小而不是展开它。

我让按钮被创建并获取它的大小,然后我分配图像并使用 ImageButton.setMaxHeight(); 限制它的高度;

final ImageButton ib = (ImageButton) findViewById(R.id.buttonOptions);
    ib.post(new Runnable() {
        public void run() {
            final int height = ib.getHeight();
            ib.setScaleType(ScaleType.FIT_CENTER);
            ib.setMaxHeight(5); // or height    
            ib.setImageResource(R.drawable.options);

        }});

图像正以其原始大小绘制,因此展开按钮... setMaxHeight() 不限制图像的高度/宽度。知道为什么吗?

【问题讨论】:

    标签: android height imagebutton image-scaling


    【解决方案1】:

    解决了
    ib.setAdjustViewBounds(true);
    

    【讨论】:

    • 不错的解决方案。谢谢
    【解决方案2】:
    ViewTreeObserver observer = ib.getViewTreeObserver();
    observer.addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    //here you can get height and set height
    }
    

    不确定,但请尝试一下。它可能会对您有所帮助。

    【讨论】:

    • 同样的结果,按钮增长到图片大小
    • @aviran try ib.setBackgroundResource(R.drawable.options);而不是 ib.setImageResource(R.drawable.options);
    【解决方案3】:

    setMaxHeight() 用于图像按钮,而不是用于其中的图像。

    试试,

    ib.setScaleType(ScaleType.CENTER_CROP);
    

    【讨论】:

    • 同样的结果,按钮增长到图片大小
    • 尝试设置布局宽度和高度,如 android:layout_width="60dp" android:layout_height="60dp"
    猜你喜欢
    • 2017-05-01
    • 1970-01-01
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-06
    • 2015-01-07
    相关资源
    最近更新 更多