代码实现android的一个登录界面

先让大家看一看效果代码实现android的一个登录界面_第1张图片
是不是感觉没有什么 ,这里面的布局没有用到XML,都是代码写的。为了以后自己还可以用就写一个文章。

开始教程了
第一步:创建类public class LoginLayoutView extends RelativeLayout {}
第二步:开始一个view一个view添加
先设置LoginLayoutView 布局参数
LayoutParams layoutParams = new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
setLayoutParams(layoutParams);

开始添加第一张图片

 //添加Loge图片
ImageView imageLogo = new ImageView(mContext);
imageLogo.setId(R.id.my_view);//设置View的ID后面设置布局有用
imageLogo.setImageResource(R.drawable.ic_launcher);
addView(imageLogo);
//设置View的margin 上下左右
MarginLayoutParams imgMargin = new MarginLayoutParams(imageLogo.getLayoutParams());
imgMargin.topMargin = px2dp(140);
LayoutParams imgParams = new LayoutParams(imgMargin);//设置view的参数 比如怎么排放居中还是怎么
imgParams.addRule(RelativeLayout.CENTER_HORIZONTAL,TRUE); //将view水平居中
//设置view的宽度和高度
imgParams.width = px2dp(207);
imgParams.height = px2dp(207);
imageLogo.setLayoutParams(imgParams); //将参数设置进去

就这样简单的添加一个View就成功了
还有一些设置布局参数如下

imgParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT,TRUE); //将view设置在父View的左侧
imgParams.addRule(RIGHT_OF, R.id.phone);//将view设置在id为phone View的右侧

以下方法是设置背景的一些样式,比如点击状态是什么颜色等

GradientDrawable normolDrawable = new GradientDrawable();
normolDrawable.setShape(GradientDrawable.RECTANGLE);
normolDrawable.setCornerRadius(px2dp(24));
normolDrawable.setColor(0xffE53935); //e3e3e3

GradientDrawable pressDrawable = new GradientDrawable();
pressDrawable.setShape(GradientDrawable.RECTANGLE);
pressDrawable.setCornerRadius(px2dp(24));
pressDrawable.setColor(0xffe3e3e3);

StateListDrawable selectDrawable = new StateListDrawable();
selectDrawable.addState(new int[]{android.R.attr.state_pressed},pressDrawable);
selectDrawable.addState(new int[]{},normolDrawable);
mGetCodeTv.setBackgroundDrawable(selectDrawable);

如果有点击事件,你也可以设置点击事件的监听回调代码如下

//处理登录点击事件
    OnLoginListener mOnLoginListener;

    public interface OnLoginListener {
        void onLoginClick();
    }
    public void setOnLoginListener(OnLoginListener listener) {
        this.mOnLoginListener = listener;
    }

当点击登录时候你就可以回调到主activity进行处理逻辑

是不是很简单

附上原码

你可能感兴趣的:(Android)