最近在做一个小的Android项目中遇到一个问题,就是不知道为什么机器输出的分辨率不稳定,总是有几十个像素的误差。导致屏幕适配出现了问题。这次主要记录一下解决思路。

问题就如图 主要是一张背景图 ,在背景图指定区域去镶嵌一张指定图片。
对于这种简单的解决思路就是 将两张图片合成为一张 。因为背景图的尺寸是固有的的 所以合成后显示, 这样就不会乱了。
上代码
/*** 合成图片* @param big 底图* @param small 小图* @param xInRatio 小图在底图中的横坐标(相对于底图宽的比例)* @param yInRatio 小图在底图中的纵坐标(相对于底图高的比例)* @return*/public static Bitmap mergeWithCrop(Bitmap big, Bitmap small, float xInRatio, float yInRatio){int bigW = big.getWidth();int bigH = big.getHeight();
//scale 计算背景图被缩放的比例 1920 为本人原图实际宽度float scale = (float) (bigW/1920.0);
//newsmallw 计算镶嵌图的尺寸 270为镶嵌位置实际宽高(正方形)int newsmallw = (int) (270*scale);Bitmap newBmp=Bitmap.createBitmap(bigW,bigH,Bitmap.Config.RGB_565);Canvas cv=new Canvas(newBmp);//在0,0坐标开始画入bgcv.drawBitmap(big,0,0,null);
// 开始画入fg,可以从任意位置画入,具体位置自己计算int smallX = (int)(bigW*xInRatio);int smallY = (int)(bigH*yInRatio);
//设置镶嵌图片的位置Rect sRect = new Rect(smallX, smallY, smallX+newsmallw, smallY+newsmallw);
//将小图镶嵌到背景图指定位置cv.drawBitmap(small,null,sRect,null);return newBmp;}





![第7章第23节:双图排版:两张图片的错位叠加 [PowerPoint精美幻灯片实战教程]](https://img-blog.csdnimg.cn/img_convert/87e41e879ec3f3aa957c46db991a64d0.png)











