1.原理
在寫好布局檔案後,首先拿到整個螢幕的寬度,然後減去左右兩側的padding所佔的寬度,得到的結果就是imageview應該設定的寬度,再由一定比例計算出高度,最後以imageview.setlayoutparams()完成寬高的設定。
2.**
//布局檔案
//初始化
imageview mimageview = (imageview) findviewbyid(r.id.item_notice_center_iv);
mimageview.setadjustviewbounds(true);
//獲取螢幕寬度
windowmanager m = (windowmanager) getcontext().getsystemservice(context.window_service);
displaymetrics outmetrics = new displaymetrics();
m.getdefaultdisplay().getmetrics(outmetrics);
//計算寬高,我需要的尺寸是280*136
int width = outmetrics.widthpixels - densitytool.dp2px(this, 10f) * 2; //乘以2是因為左右兩側的寬度
int height = (int) (width / 280f * 136); //280*136
//設定引數
viewgroup.layoutparams layoutparams = mimageview.getlayoutparams();
layoutparams.width = width;
layoutparams.height = height;
mimageview.setlayoutparams(layoutparams);
3.dp與px轉化
public class densitytool
//根據手機的解析度從 dp 的單位 轉成為 px(畫素)
public static int dp2px(context context, float dpvalue)
//根據手機的解析度從 px(畫素) 的單位 轉成為 dp
public static float px2dp(resources resources, float pxvalue)
//獲取螢幕dpi
public static int getdpi(context context)
}
其他參考
1、android中使用displaymetrics獲取螢幕引數
2、imageview.scaletype設定**
動態分割槽調整
關係型資料庫中,對分割槽表insert資料時候,資料庫自動會根據分割槽欄位的值,將資料插入到相應的分割槽中,hive中也提供了類似的機制,即動態分割槽 dynamic partition 只不過,使用hive的動態分割槽,需要進行相應的配置 1.開啟動態分割槽引數設定 1 開啟動態分割槽功能 預設t...
Android中動態介面布局
第一種 直接用 寫 xml android orientation vertical android layout width fill parent android layout height fill parent android id id layout android layout widt...
低成本FPGA中實現動態相位調整
在fpga中,動態相位調整 dpa 主要是實現lvds介面接收時對時鐘和資料通道的相位補償,以達到正確接收的目的。altera的高階fpga,如stratix r 系列中自帶有dpa電路,但低端的fpga,如cyclone r 系列中是沒有的。下面介紹如何在低端fpga中實現這個dpa的功能。實現架...