1
我喜歡在我的應用中使用百分比來表示所有位置。我總是使用相同的系統。我是android編程的新手。按百分比設置位置 - Android DisplayMetrics
這是類:
public class SCREEN {
DisplayMetrics dm = new DisplayMetrics();
Point size_ = new Point();
int width;
int height;
// DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics();
SCREEN (Context CONTEXT_) {
dm = CONTEXT_.getResources().getDisplayMetrics();
int densityDpi = dm.densityDpi;
height = dm.heightPixels;
width = dm.widthPixels;
}
// get full width
public int WIDTH() {
return width;
}
public int HEIGHT(){
return height;
}
public int W(int PER_){
return width/100*PER_;
}
public int H(int PER_ ){
return height/100*PER_;
}
}
使用示例:
EKRAN = new SCREEN();
MENU1.setX((float) EKRAN.W(50));
這意味着MENU1按鈕x位置必須是在屏幕的中心,但它不是。它的價值很小,比如42%。
也許我的錯誤是INT之間關係 - 浮動
下面是屏幕截圖(的FrameLayout): 我把這個代碼爲這個按鈕 - 這意味着X = 0,Y = 0,寬度=半屏的,但它是不是:
final Button BTN1 = new Button(this);
BTN1.setText(String.valueOf(EKRAN.H(0)));
BTN1.setLayoutParams(new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT));
VEIW_MAIN.addView(BTN1);
BTN1.setY((float) EKRAN.H(0));
BTN1.setX((float) EKRAN.W(0));
BTN1.setWidth((int) EKRAN.W(50));
Important : This work EKRAN.WIDTH()/5 = 216 , but EKRAN.W(20) = 200
My current screen i is 1080 . Only this EKRAN.WIDTH()/2 give me 540 .
Even EKRAN.WIDTH()/100*50 give me 500 ... Where is the 40pix ?!
我需要進一步探討這個,「不要使用百分比」不是我的解決方案。 –