通过纯代码实现XML同样的效果:

[java]   view plain copy
  1. import android.app.Activity;  
  2. import android.content.Context;  
  3. import android.graphics.Color;  
  4. import android.os.Bundle;  
  5. import android.text.InputFilter;  
  6. import android.text.InputFilter.LengthFilter;  
  7. import android.view.Gravity;  
  8. import android.view.ViewGroup;  
  9. import android.view.ViewGroup.LayoutParams;  
  10. import android.widget.Button;  
  11. import android.widget.EditText;  
  12. import android.widget.ImageView;  
  13. import android.widget.ImageView.ScaleType;  
  14. import android.widget.LinearLayout;  
  15. import android.widget.RelativeLayout;  
  16. import android.widget.ScrollView;  
  17. import android.widget.TextView;  
  18.   
  19. public class ActivityInfo extends Activity {  
  20.       
  21.     @Override  
  22.     protected void onCreate(Bundle savedInstanceState) {  
  23.         // TODO Auto-generated method stub  
  24.         super.onCreate(savedInstanceState);  
  25. //      setContentView(R.layout.info);  
  26.           
  27.         initUI();  
  28.     }  
  29.       
  30.     public final void initUI(){  
  31.         ScrollView main = new ScrollView(this);  
  32.         main.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));  
  33.         main.setBackgroundColor(Color.WHITE);  
  34.           
  35.         //根布局参数  
  36.         LinearLayout.LayoutParams layoutParamsRoot = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.FILL_PARENT);  
  37.         layoutParamsRoot.gravity = Gravity.CENTER;  
  38.         //根布局  
  39.         LinearLayout layoutRoot = new LinearLayout(this);  
  40.         layoutRoot.setLayoutParams(layoutParamsRoot);  
  41.         layoutRoot.setOrientation(LinearLayout.VERTICAL);  
  42.           
  43.           
  44.         //上边距(dp值)  
  45.         int topMargin = dip2px(this30);  
  46.         //imageMain宽度(dp值)  
  47.         int widthMain = dip2px(this240);  
  48.         //imageMain高度(dp值)  
  49.         int heightMain = dip2px(this120);  
  50.           
  51.         //imageMain布局参数  
  52.         LinearLayout.LayoutParams layoutParamsImageMain = new LinearLayout.LayoutParams(widthMain,heightMain);  
  53.         layoutParamsImageMain.topMargin = topMargin;  
  54.         layoutParamsImageMain.bottomMargin = topMargin;  
  55.         layoutParamsImageMain.leftMargin = topMargin;  
  56.         layoutParamsImageMain.rightMargin = topMargin;  
  57.         layoutParamsImageMain.gravity=Gravity.CENTER_HORIZONTAL;  
  58.         //初始化ImageView  
  59.         ImageView imageMain = new ImageView(this);  
  60.         imageMain.setScaleType(ScaleType.FIT_CENTER);  
  61.         imageMain.setAdjustViewBounds(true);  
  62.         imageMain.setBackgroundColor(Color.BLACK);  
  63.         imageMain.setImageResource(android.R.drawable.ic_dialog_map);  
  64.         layoutRoot.addView(imageMain, layoutParamsImageMain);  
  65.           
  66.         //textInfo布局参数  
  67.         LinearLayout.LayoutParams layoutParamsTextInfo = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);  
  68.         layoutParamsTextInfo.topMargin = topMargin;  
  69.         layoutParamsTextInfo.bottomMargin = topMargin;  
  70.         layoutParamsTextInfo.leftMargin = topMargin;  
  71.         layoutParamsTextInfo.rightMargin = topMargin;  
  72.         layoutParamsTextInfo.gravity=Gravity.CENTER_HORIZONTAL;  
  73.         //初始化textInfo  
  74.         TextView textInfo = new TextView(this);  
  75.         textInfo.setGravity(Gravity.CENTER_HORIZONTAL);  
  76.         textInfo.setTextSize(18);  
  77.         layoutRoot.addView(textInfo, layoutParamsTextInfo);  
  78.           
  79.         //editInfo布局参数  
  80.         LinearLayout.LayoutParams layoutParamsEditInfo = new LinearLayout.LayoutParams(widthMain,LayoutParams.WRAP_CONTENT);  
  81.         layoutParamsEditInfo.topMargin = topMargin;  
  82.         layoutParamsEditInfo.gravity=Gravity.CENTER_HORIZONTAL;  
  83.         //初始化editInfo  
  84.         EditText editInfo = new EditText(this);  
  85.         editInfo.setHint("请输入文字内容");  
  86.         //设置可输入的最大长度  
  87.         InputFilter[] filters = {new LengthFilter(200)};    
  88.         editInfo.setFilters(filters);  
  89.         editInfo.setTextSize(18);  
  90.         layoutRoot.addView(editInfo, layoutParamsEditInfo);  
  91.           
  92.         //上边距(dp值)  
  93.         int minHeight = dip2px(this54);  
  94.         //上padding(dp值)  
  95.         int topPadding = dip2px(this4);  
  96.         //左padding(dp值)  
  97.         int leftPadding = dip2px(this2);  
  98.         //按钮布局  
  99.         LinearLayout layoutButton = new LinearLayout(this);  
  100.         layoutButton.setLayoutParams(layoutParamsEditInfo);  
  101.         layoutButton.setOrientation(LinearLayout.HORIZONTAL);  
  102.         layoutButton.setBackgroundColor(Color.parseColor("#c6c3c6"));  
  103.         layoutButton.setMinimumHeight(minHeight);  
  104.         layoutButton.setPadding(leftPadding, topPadding, leftPadding, topPadding);  
  105.         layoutButton.setId(100000001);  
  106.           
  107.         //buttonOK布局参数  
  108.         LinearLayout.LayoutParams layoutParamsButtonOK = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);  
  109.         layoutParamsButtonOK.gravity = Gravity.LEFT;  
  110.         layoutParamsButtonOK.leftMargin = dip2px(this10);  
  111.         layoutParamsButtonOK.rightMargin = dip2px(this5);  
  112.         layoutParamsButtonOK.weight = 1;  
  113.         //Button确定  
  114.         Button buttonOK = new Button(this);  
  115.         buttonOK.setLayoutParams(layoutParamsButtonOK);  
  116.         buttonOK.setMaxLines(2);  
  117.         buttonOK.setTextSize(18);  
  118.         buttonOK.setText("确定");  
  119.         layoutButton.addView(buttonOK);  
  120.           
  121.         //buttonCancel布局参数  
  122.         LinearLayout.LayoutParams layoutParamsButtonCancel = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);  
  123.         layoutParamsButtonCancel.gravity = Gravity.RIGHT;  
  124.         layoutParamsButtonCancel.leftMargin = dip2px(this5);  
  125.         layoutParamsButtonCancel.rightMargin = dip2px(this10);  
  126.         layoutParamsButtonCancel.weight = 1;  
  127.         //Button取消  
  128.         Button buttonCancel = new Button(this);  
  129.         buttonCancel.setLayoutParams(layoutParamsButtonCancel);  
  130.         buttonCancel.setMaxLines(2);  
  131.         buttonCancel.setTextSize(18);  
  132.         buttonCancel.setText("取消");  
  133.           
  134.         layoutButton.addView(buttonCancel);  
  135.           
  136.         layoutRoot.addView(layoutButton, layoutParamsEditInfo);  
  137.           
  138.         //RelativeLayout布局参数  
  139.         LinearLayout.LayoutParams layoutParamsBottom = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);  
  140.         RelativeLayout layoutBottom = new RelativeLayout(this);  
  141.         layoutBottom.setLayoutParams(layoutParamsBottom);  
  142.           
  143.         RelativeLayout.LayoutParams paramsImageBottom = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);  
  144.         paramsImageBottom.addRule(RelativeLayout.BELOW, 100000001);  
  145.         paramsImageBottom.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);  
  146.         paramsImageBottom.setMargins(topMargin, topMargin, topMargin, topMargin);  
  147.           
  148.         //初始化ImageView  
  149.         ImageView imageBottom = new ImageView(this);  
  150.         imageBottom.setScaleType(ScaleType.FIT_CENTER);  
  151.         imageBottom.setAdjustViewBounds(true);  
  152.         imageBottom.setBackgroundColor(0xFF777777);  
  153.         imageBottom.setImageResource(android.R.drawable.ic_dialog_email);  
  154.         layoutBottom.addView(imageBottom, paramsImageBottom);  
  155.         layoutRoot.addView(layoutBottom);  
  156.           
  157.           
  158.         //TODO TEST  
  159. //      imageMain.setBackgroundResource(android.R.drawable.ic_dialog_map);  
  160.         textInfo.setText("测试文本显示");  
  161.           
  162.         main.addView(layoutRoot);  
  163.         setContentView(main);  
  164.     }  
  165.       
  166.     /** 
  167.      * 根据手机的分辨率从 dp 的单位 转成为 px(像素) 
  168.      */  
  169.     public static int dip2px(Context context, float dpValue) {  
  170.         final float scale = context.getResources().getDisplayMetrics().density;  
  171.         return (int) (dpValue * scale + 0.5f);  
  172.     }  
  173.   
  174.     /** 
  175.      * 根据手机的分辨率从 px(像素) 的单位 转成为 dp 
  176.      */  
  177.     public static int px2dip(Context context, float pxValue) {  
  178.         final float scale = context.getResources().getDisplayMetrics().density;  
  179.         return (int) (pxValue / scale + 0.5f);  
  180.     }  
  181.   
  182. }  

 

效果图:


更多相关文章

  1. android webview在弹出软键盘时,布局没有上移的解决办法
  2. android第三天--AbsoluteLayout绝对布局
  3. Android Layout Tricks #3: Optimize with stubs(Android 布局技
  4. Android 关于显示键盘,布局错乱网上顶的问题
  5. Android页面跳转是如何传递参数的
  6. android 开发 简单的页面布局

随机推荐

  1. Get the Android SDK翻译
  2. Android开发窗口实现半透明效果
  3. Android内存控制
  4. android sqlite批量插入数据速度解决方案
  5. Cocos2d-x for Android(安卓)& iOS开发环
  6. Android(安卓)中使用EditText 点击全选再
  7. Android shape实现渐变、部分圆角及叠加
  8. andriod模拟器环境下apk应用程序的安装和
  9. 给Android的音量按钮添加监听事件
  10. Mac adb: command not found