根据屏幕大小缩放图像按钮

Posted

技术标签:

【中文标题】根据屏幕大小缩放图像按钮【英文标题】:Scaling ImageButton basing on screen size 【发布时间】:2014-06-21 09:47:33 【问题描述】:

在我的应用程序中,我可以使用此类缩放 ImageView

`public class resizeAvatar extends View

private final Drawable sfondoAvatar;

public resizeAvatar(Context context) 
    super(context);

    sfondoAvatar = context.getResources().getDrawable(R.drawable.main_voice);
    setBackgroundDrawable(sfondoAvatar);



public resizeAvatar(Context context, AttributeSet attrs) 
    super(context, attrs);

    sfondoAvatar = context.getResources().getDrawable(R.drawable.main_voice);
    setBackgroundDrawable(sfondoAvatar);


public resizeAvatar(Context context, AttributeSet attrs, int defStyle) 
    super(context, attrs, defStyle);

    sfondoAvatar = context.getResources().getDrawable(R.drawable.main_voice);
    setBackgroundDrawable(sfondoAvatar);


@Override
protected void onMeasure(int widthMeasureSpec,
                                   int heightMeasureSpec) 
    int width = MeasureSpec.getSize(widthMeasureSpec);
    int height = width * sfondoAvatar.getIntrinsicHeight() / sfondoAvatar.getIntrinsicWidth();
    setMeasuredDimension(width, height);

`

并在布局中写:

<com.myapp.app.resizeAvatar android:id="@+id/mainvoice" android:layout_ android:layout_ android:layout_margin="5dp" android:layout_centerVertical="true"/>

但是这样我不能有 onClick 事件.. 我需要做同样的事情但是使用 ImageButton.. 有没有办法?

【问题讨论】:

【参考方案1】:

在包含此视图的 Activity 和 onCreate 方法中执行以下操作:

resizeAvatar myMainvoice  = (resizeAvatar) v.findViewById(R.id.mainvoice);
myMainVoice.setOnClickListener(new View.OnClickListener() 
        
            public void onClick(View v) 
             
               //place your on click logic here 
            
        );

【讨论】:

是的,它有效!我没有考虑过这个解决方案。谢谢!

以上是关于根据屏幕大小缩放图像按钮的主要内容,如果未能解决你的问题,请参考以下文章

将带有图像背景的 UI Button 缩放为 iphone 大小

你如何让背景图像快速缩放到屏幕大小?

Andengine,缩放图像以填充屏幕大小,而不保持纵横比

如何根据WatchKit中的手表大小缩放字体大小?

缩放 html 以根据屏幕分辨率按比例调整大小

android ImageView图片缩放至屏幕大小