RelativeLayout用java代码敲布局

来源:互联网 发布:肌研洗面奶怎么样 知乎 编辑:程序博客网 时间:2024/05/23 18:32

解决问题:主要是用来屏幕适配,有的控件动态加载出来。

1、

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="220dp" >
</RelativeLayout>

2、

package com.example.est;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.RelativeLayout;
public class MainActivity extends Activity {
private RelativeLayout activity_main;
WindowManager wm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
private int image1 = 10001;
private int image2 = 10002;
private int image3 = 10003;
private int image4 = 10004;
private int image5 = 10005;
private void initView() {
wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
int width = wm.getDefaultDisplay().getWidth();
int height = wm.getDefaultDisplay().getHeight();
activity_main = (RelativeLayout) findViewById(R.id.activity_main);
// 第一个
ImageView imageview1 = new ImageView(MainActivity.this);
imageview1.setLayoutParams(new ViewGroup.LayoutParams(width / 4, ViewGroup.LayoutParams.MATCH_PARENT));// 宽,高
imageview1.setPadding(10, 0, 10, 0);
imageview1.setId(image1);
imageview1.setBackgroundResource(R.drawable.ic_launcher);
// 第二个
ImageView imageview2 = new ImageView(MainActivity.this);
RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(width / 4, (int) (dip2px(220) / 2));
lp2.addRule(RelativeLayout.RIGHT_OF, image1);
imageview2.setId(image2);
imageview2.setBackgroundResource(R.drawable.ic_launcher);
imageview2.setLayoutParams(lp2);
// 第三个
ImageView imageview3 = new ImageView(MainActivity.this);
RelativeLayout.LayoutParams lp3 = new RelativeLayout.LayoutParams(width / 2, (int) (dip2px(220) / 2));
lp3.addRule(RelativeLayout.RIGHT_OF, image2);
imageview3.setId(image3);
imageview3.setBackgroundResource(R.drawable.ic_launcher);
imageview3.setLayoutParams(lp3);
// 第四个
ImageView imageview4 = new ImageView(MainActivity.this);
RelativeLayout.LayoutParams lp4 = new RelativeLayout.LayoutParams(width / 2, (int) (dip2px(220) / 2));
lp4.addRule(RelativeLayout.RIGHT_OF, image1);
lp4.addRule(RelativeLayout.BELOW, image2);
imageview4.setId(image4);
imageview4.setBackgroundResource(R.drawable.ic_launcher);
imageview4.setLayoutParams(lp4);
// 第五个
ImageView imageview5 = new ImageView(MainActivity.this);
RelativeLayout.LayoutParams lp5 = new RelativeLayout.LayoutParams(width / 4, (int) (dip2px(220) / 2));
lp5.addRule(RelativeLayout.RIGHT_OF, image4);
lp5.addRule(RelativeLayout.BELOW, image3);
imageview5.setId(image5);
imageview5.setBackgroundResource(R.drawable.ic_launcher);
imageview5.setLayoutParams(lp5);
activity_main.addView(imageview1);
activity_main.addView(imageview2);
activity_main.addView(imageview3);
activity_main.addView(imageview4);
activity_main.addView(imageview5);
}


public int dip2px(float dip) {
float density = getResources().getDisplayMetrics().density;
return (int) (dip * density + 0.5f);
}
}

3、效果图



0 0
原创粉丝点击