本文主要是介绍Radiobutton 设置drawtop图片大小,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先从资源文件中获取图片资源
//获取资源文件图片,设置大小public static Bitmap getMyBitmap(Context context, int id,int w, int h){Bitmap oldbmp = BitmapFactory.decodeResource(context.getResources(), id);if(oldbmp!=null){int width = oldbmp.getWidth();//获取的是像素 int height = oldbmp.getHeight();Log.i("单位", "宽:"+width+"高度:"+height);Matrix matrix = new Matrix();float scaleWidth = ((float) w / width);float scaleHeight = ((float) h / height);matrix.postScale(scaleWidth, scaleHeight);Bitmap newbmp = Bitmap.createBitmap(oldbmp, 0, 0, width, height, matrix, true);return newbmp;}else{return null;}
}
单位转换工具类
import android.content.Context;public class DensityUtil { /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp */ public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); }
}
实现代码
radio_first = (RadioButton) findViewById(R.id.radio_first);int sp=DensityUtil.dip2px(this, 30);//转换为像素Log.i("单位", "转换的像素:"+sp);Drawable dr_first=new BitmapDrawable( Utils.getMyBitmap(this, R.drawable.nav_yi,sp , sp));//位图转换为drawabledr_first.setBounds(0, 0, dr_first.getMinimumWidth(), dr_first.getMinimumHeight());radio_first.setCompoundDrawables(null,dr_first,null , null);//radioabutton 设置
但是我建议不要使用这种方法,美工能把图片做到最适合的尺寸,就最好,这种模式性能不高,而且很难设置适合的放大缩小比例。
程序员内功修炼手册 不定期分享程序员基础知识,大前端知识!想跟博主一块成长的快快关注吧!
这篇关于Radiobutton 设置drawtop图片大小的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!