代码添加也可以,获取屏幕尺寸,然后代码添加控件设置计算出来的长度宽度,还有margin

解决方案 »

  1.   

    把margin值写道dimens.xml文件中,使用value-XXX这样的文件来适配不同屏幕尺寸,每个这样的文件夹下面一个dimens.xml文件
      

  2.   

    左右各加个View占位,然后用weight和gravity。
      

  3.   

    如果你能明确比例的话可以用weight属性
      

  4.   

     这个是我做的一个不同手机屏幕的适配,看一下对你有帮助有                                                                                                                                                                                                           DisplayMetrics displayMetrics = new DisplayMetrics();
    this.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics); int screenWidth = displayMetrics.widthPixels;
    int screenHeight = displayMetrics.heightPixels; System.err.println("打印高:" + screenWidth);
    System.err.println("打印宽:" + screenHeight);
    if (screenWidth == 480) {
    rate = (int) (textsize * (float) screenWidth / 480);
    rate = (int) (textsize * (float) screenHeight / 800);
    int w = View.MeasureSpec.makeMeasureSpec(0,
    View.MeasureSpec.UNSPECIFIED);
    int h = View.MeasureSpec.makeMeasureSpec(0,
    View.MeasureSpec.UNSPECIFIED);
    game_img.measure(w, h); int height = game_img.getMeasuredHeight();
    System.out.println("出来" + height); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
    LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
    RelativeLayout.LayoutParams layoutParam = new RelativeLayout.LayoutParams(
    150, 35);
    layoutParam.setMargins(70, 0, 0, 0);
    layoutParams.topMargin = height / 2 + 9;
    layoutParam.topMargin = height / 2 + 9; game_gjchu.setGravity(Gravity.CENTER);
    game_gjchu.setLayoutParams(layoutParams); rubberView.setGravity(Gravity.CENTER);
    rubberView.setLayoutParams(layoutParam);
    } else if (screenWidth == 1080) { rate = (int) (textsize * (float) screenWidth / 1080 * 1.2);
    rate = (int) (textsize * (float) screenHeight / 1920 * 1.2);
    int w = View.MeasureSpec.makeMeasureSpec(0,
    View.MeasureSpec.UNSPECIFIED);
    int h = View.MeasureSpec.makeMeasureSpec(0,
    View.MeasureSpec.UNSPECIFIED);
    game_img.measure(w, h); int height = game_img.getMeasuredHeight();
    System.out.println("出来" + height); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
    LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
    RelativeLayout.LayoutParams layoutParam = new RelativeLayout.LayoutParams(
    300, 80);
    layoutParam.setMargins(130, 0, 0, 0);
    layoutParams.topMargin = height / 2 + 9;
    layoutParam.topMargin = height / 2 + 9; game_gjchu.setGravity(Gravity.CENTER);
    game_gjchu.setLayoutParams(layoutParams); rubberView.setGravity(Gravity.CENTER);
    rubberView.setLayoutParams(layoutParam);
    } else if (screenWidth == 540) { rate = (int) (textsize * (float) screenWidth / 540 * 1.2);
    rate = (int) (textsize * (float) screenHeight / 960 * 1.2);
    int w = View.MeasureSpec.makeMeasureSpec(0,
    View.MeasureSpec.UNSPECIFIED);
    int h = View.MeasureSpec.makeMeasureSpec(0,
    View.MeasureSpec.UNSPECIFIED);
    game_img.measure(w, h); int height = game_img.getMeasuredHeight();
    System.out.println("出来" + height); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
    LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
    RelativeLayout.LayoutParams layoutParam = new RelativeLayout.LayoutParams(
    150, 40);
    layoutParam.setMargins(70, 0, 0, 0);
    layoutParams.topMargin = height / 2 + 9;
    layoutParam.topMargin = height / 2 + 9; game_gjchu.setGravity(Gravity.CENTER);
    game_gjchu.setLayoutParams(layoutParams); rubberView.setGravity(Gravity.CENTER);
    rubberView.setLayoutParams(layoutParam); } else if (screenWidth == 720) { rate = (int) (textsize * (float) screenWidth / 720 * 1.2);
    rate = (int) (textsize * (float) screenHeight / 1280 * 1.2);
    int w = View.MeasureSpec.makeMeasureSpec(0,
    View.MeasureSpec.UNSPECIFIED);
    int h = View.MeasureSpec.makeMeasureSpec(0,
    View.MeasureSpec.UNSPECIFIED);
    game_img.measure(w, h); int height = game_img.getMeasuredHeight();
    System.out.println("出来" + height); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
    LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT);
    RelativeLayout.LayoutParams layoutParam = new RelativeLayout.LayoutParams(
    200, 60);
    layoutParam.setMargins(90, 0, 0, 0);
    layoutParams.topMargin = height / 2 + 9;
    layoutParam.topMargin = height / 2 + 9; game_gjchu.setGravity(Gravity.CENTER);
    game_gjchu.setLayoutParams(layoutParams); rubberView.setGravity(Gravity.CENTER);
    rubberView.setLayoutParams(layoutParam); } else { }
    game_jinbi.setTextSize(rate);
    game_shuoming2.setTextSize(rate);
    game_shuoming.setTextSize(rate);
    game_gjcishu.setTextSize(rate);
    game_gjcishu2.setTextSize(rate); }