将textareas和按钮定位在屏幕的%

时间:2015-06-16 10:15:54

标签: android android-studio

我昨天开始为Android开发。我已经了解Java,所以你不必为初学者解释一般的Java东西。

  

信息:   IDE:Android Studio(最新)   最低API:10

我想编写一个有趣的应用程序,用户在C4 Bomb UI中键入倒计时,并在输入后弹出炸弹。

我现在遇到的问题是我无法将元素边距放在屏幕的%。

这是一张带有文字字段,按钮和我用图像尺寸计算的边距的图像。

我该怎么做?

Bomb UI painted

2 个答案:

答案 0 :(得分:1)

您可以使用以下算法:

//declare two variables for width and height of the screen, that you could use later
private int screenWidth;
private int screenHeight;

//first get the size of the screen - call this method in the onCreate method of your Activity
private static void getScreenResolution(Context context){
    WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
    Display display = wm.getDefaultDisplay();
    DisplayMetrics metrics = new DisplayMetrics();
    display.getMetrics(metrics);
    screenWidth = metrics.widthPixels;
    screenHeight = metrics.heightPixels;
}

//then use dynamically positioning of the elements as you use LayoutParameters for your elements like this:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); //width, height
params.setMargins(11*screenWidth/100, 34*screenHeight/100, 0, 0);//left, top, right, bottom - here you could use the % like 11% from screenWidth = 11*screenWidth/100 (all the digits are for example)
//get the element which you want to be positioned at the current position (for example an ImageView)
ImageView myImage = (ImageView)findViewById(R.id.myImage);
myImage.setLayoutParams(params);

P.S。如果您的布局为RelativeLayout,则应使用RelativeLayout.LayoutParams代替Linearlayout.LayoutParams(只需更改字词)

答案 1 :(得分:0)

您可以使用加权布局(图像左侧和右侧的空布局,然后再次将其换行以保持垂直)。假设我想在两侧创建边距为25%的图像,然后每个空布局的权重为1,对于图像为2。

更新: 这里有一个小例子,“视图”组件只是保证金的占位符 顶部和底部边距是高度的25%,而左边距和右边距是屏幕宽度的20%。

mule.bat start