一,纯代码
布局的引用。纯代码,听着很刺激哦,android还有这个操作,牛逼吧,Google 66666
纯代码实现登录界面,用一变二,看代码,复杂的界面都是由简单的演变而来,加油吧,骚年
import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.graphics.Color; import android.os.Bundle; import android.text.InputFilter; import android.text.TextUtils; import android.view.Gravity; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.RelativeLayout; import android.widget.ScrollView; import android.widget.TextView; import android.widget.Toast; import song.com.cn.R; /** * @author lixiang * @date :2017/11/3 * @Description: 纯代码 */ public class PureCodeActivity extends Activity { private EditText editInfo; private EditText passWord; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); initUI(); } @SuppressLint("ResourceType") public final void initUI() { ScrollView main = new ScrollView(this); main.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); main.setBackgroundColor(Color.WHITE); //根布局参数 LinearLayout.LayoutParams layoutParamsRoot = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); layoutParamsRoot.gravity = Gravity.CENTER; //根布局 LinearLayout layoutRoot = new LinearLayout(this); layoutRoot.setLayoutParams(layoutParamsRoot); layoutRoot.setOrientation(LinearLayout.VERTICAL); //上边距(dp值) int topMargin = dip2px(this, 30); //imageMain宽度(dp值) int widthMain = dip2px(this, 240); //imageMain高度(dp值) int heightMain = dip2px(this, 120); //imageMain布局参数 LinearLayout.LayoutParams layoutParamsImageMain = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, heightMain); layoutParamsImageMain.topMargin = topMargin; layoutParamsImageMain.bottomMargin = topMargin; layoutParamsImageMain.leftMargin = topMargin; layoutParamsImageMain.rightMargin = topMargin; layoutParamsImageMain.gravity = Gravity.CENTER_HORIZONTAL; //初始化ImageView ImageView imageMain = new ImageView(this); imageMain.setScaleType(ImageView.ScaleType.FIT_CENTER); imageMain.setAdjustViewBounds(true); imageMain.setImageResource(R.mipmap.laoying); layoutRoot.addView(imageMain, layoutParamsImageMain); //按钮布局 LinearLayout layoutUser = new LinearLayout(this); layoutUser.setLayoutParams(layoutParamsImageMain); layoutUser.setOrientation(LinearLayout.HORIZONTAL); //editInfo布局参数 LinearLayout.LayoutParams layoutParamsEditInfo = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); layoutParamsEditInfo.gravity = Gravity.LEFT; layoutParamsEditInfo.leftMargin = dip2px(this, 10); layoutParamsEditInfo.rightMargin = dip2px(this, 5); layoutParamsEditInfo.weight = 1; //初始化textInfo TextView textInfo = new TextView(this); textInfo.setLayoutParams(layoutParamsEditInfo); textInfo.setGravity(Gravity.LEFT); textInfo.setTextSize(18); textInfo.setText("账号:"); layoutUser.addView(textInfo); // LinearLayout.LayoutParams layoutParamsET = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); layoutParamsET.gravity = Gravity.RIGHT; layoutParamsET.leftMargin = dip2px(this, 10); layoutParamsET.rightMargin = dip2px(this, 5); layoutParamsET.weight = 1; //初始化editInfo editInfo = new EditText(this); editInfo.setLayoutParams(layoutParamsET); editInfo.setGravity(Gravity.LEFT); editInfo.setHint("请输入账号"); editInfo.setLines(1); editInfo.setEllipsize(TextUtils.TruncateAt.END); //设置可输入的最大长度 InputFilter[] filters = {new InputFilter.LengthFilter(20)}; editInfo.setFilters(filters); editInfo.setTextSize(18); layoutUser.addView(editInfo); layoutRoot.addView(layoutUser, layoutParamsEditInfo); //密码输入 passWord(layoutRoot, layoutParamsImageMain); //上边距(dp值) int minHeight = dip2px(this, 54); //上padding(dp值) int topPadding = dip2px(this, 4); //左padding(dp值) int leftPadding = dip2px(this, 2); //按钮布局 LinearLayout layoutButton = new LinearLayout(this); layoutButton.setLayoutParams(layoutParamsEditInfo); layoutButton.setOrientation(LinearLayout.HORIZONTAL); layoutButton.setMinimumHeight(minHeight); layoutButton.setPadding(leftPadding, topPadding, leftPadding, topPadding); layoutButton.setId(100000001); //buttonOK布局参数 LinearLayout.LayoutParams layoutParamsButtonOK = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); layoutParamsButtonOK.gravity = Gravity.LEFT; layoutParamsButtonOK.leftMargin = dip2px(this, 10); layoutParamsButtonOK.rightMargin = dip2px(this, 5); layoutParamsButtonOK.weight = 1; //Button确定 Button buttonOK = new Button(this); buttonOK.setLayoutParams(layoutParamsButtonOK); buttonOK.setMaxLines(2); buttonOK.setTextSize(18); buttonOK.setText("登录"); layoutButton.addView(buttonOK); //buttonCancel布局参数 LinearLayout.LayoutParams layoutParamsButtonCancel = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); layoutParamsButtonCancel.gravity = Gravity.RIGHT; layoutParamsButtonCancel.leftMargin = dip2px(this, 5); layoutParamsButtonCancel.rightMargin = dip2px(this, 10); layoutParamsButtonCancel.weight = 1; //Button取消 Button buttonCancel = new Button(this); buttonCancel.setLayoutParams(layoutParamsButtonCancel); buttonCancel.setMaxLines(2); buttonCancel.setTextSize(18); buttonCancel.setText("取消"); layoutButton.addView(buttonCancel); layoutRoot.addView(layoutButton, layoutParamsEditInfo); buttonOK.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(PureCodeActivity.this, "账号:" + editInfo.getText().toString() + " 密码:" + passWord.getText().toString(), Toast.LENGTH_SHORT).show(); } }); buttonCancel.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); //RelativeLayout布局参数 LinearLayout.LayoutParams layoutParamsBottom = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); RelativeLayout layoutBottom = new RelativeLayout(this); layoutBottom.setLayoutParams(layoutParamsBottom); main.addView(layoutRoot); setContentView(main); } /** * 根据手机的分辨率从 dp 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (dpValue * scale + 0.5f); } /** * 根据手机的分辨率从 px(像素) 的单位 转成为 dp */ public static int px2dip(Context context, float pxValue) { final float scale = context.getResources().getDisplayMetrics().density; return (int) (pxValue / scale + 0.5f); } private void passWord(LinearLayout layoutRoot, LinearLayout.LayoutParams layoutParamsImageMain) { //按钮布局 LinearLayout layoutUser = new LinearLayout(this); layoutUser.setLayoutParams(layoutParamsImageMain); layoutUser.setOrientation(LinearLayout.HORIZONTAL); //editInfo布局参数 LinearLayout.LayoutParams layoutParamsEditInfo = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); layoutParamsEditInfo.gravity = Gravity.LEFT; layoutParamsEditInfo.leftMargin = dip2px(this, 10); layoutParamsEditInfo.rightMargin = dip2px(this, 5); layoutParamsEditInfo.weight = 1; //初始化textInfo TextView textInfo = new TextView(this); textInfo.setLayoutParams(layoutParamsEditInfo); textInfo.setGravity(Gravity.LEFT); textInfo.setTextSize(18); textInfo.setText("密码:"); layoutUser.addView(textInfo); //buttonOK布局参数 LinearLayout.LayoutParams layoutParamsET = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); layoutParamsET.gravity = Gravity.RIGHT; layoutParamsET.leftMargin = dip2px(this, 10); layoutParamsET.rightMargin = dip2px(this, 5); layoutParamsET.weight = 1; //初始化editInfo passWord = new EditText(this); passWord.setLayoutParams(layoutParamsEditInfo); passWord.setGravity(Gravity.LEFT); passWord.setLines(1); passWord.setEllipsize(TextUtils.TruncateAt.END); passWord.setHint("请输入密码"); //设置可输入的最大长度 InputFilter[] filters = {new InputFilter.LengthFilter(20)}; passWord.setFilters(filters); passWord.setTextSize(18); layoutUser.addView(passWord); layoutRoot.addView(layoutUser, layoutParamsEditInfo); } }