我所採用的方式是,透過Bitamp來達到縮放icon的大小
步驟
1.先將icon圖檔讀入到bitmap
2.設定要縮放的比例
比例算法:用新圖檔的長高/原始圖檔的長高
3.建立一個新的Martix,利用postScale設定Martix的比例
參考網址
4.接著建立新的bitmap,透過createBitmap將原圖及Maritx等參數加入,即可建立新的被resize的 bitmap
參考網址
5.將resize的bitmap加入到BitmapDrawable
6.最後將BitmapDrawable ,透過setImageDrawable加入到imageview去顯示
依照上去步驟,可以減少調整原先setting layout的設置,達到縮放icon的效果
程式碼如下
ImageView indicatorView = new ImageView(getContext()); //for resize icon Bitmap bmp = BitmapFactory.decodeResource(getContext().getResources(), R.drawable.ic_tab_common_setting); int oldwidth = bmp.getWidth(); int oldheight = bmp.getHeight(); Log.i("Alex","SettingManager====>bmp size is :"+oldwidth+","+oldheight); float scaleWidth = 51 / (float)oldwidth; float scaleHeight = 51 / (float)oldheight; Log.i("Alex","SettingManager====> set scale value : "+scaleWidth + ":" + scaleHeight); Matrix matrix = new Matrix(); matrix.postScale(scaleWidth, scaleHeight); // create the new Bitmap object Bitmap resizedBitmap = Bitmap.createBitmap(bmp, 0, 0, oldwidth,oldheight, matrix, true); BitmapDrawable bmd = new BitmapDrawable(resizedBitmap); indicatorView.setBackgroundResource(R.drawable.bg_tab_title); indicatorView.setImageDrawable(bmd);
其他參考網頁1
其他參考網頁2
沒有留言:
張貼留言