精华内容
下载资源
问答
  • android仿制qq登陆界面

    2019-04-06 17:38:09
    利用android studio,结合sdk,jdk制作的一个静态qq界面,仅供新手学习交流。
  • QQ登陆界面

    2014-05-07 20:09:51
    自己设计的QQ登陆界面设计,不知道能不能帮到各位!
  • 今天根据腾讯qq,我们做一个练习,来学习如何制作一个漂亮的布局。首先看一下官方图片 还是一个启动画面,之后进入登录页面,导航页面就不介绍了,大家可以参考微信的导航页面。首先程序进入SplashActivity,就是...

    今天根据腾讯qq,我们做一个练习,来学习如何制作一个漂亮的布局。首先看一下官方图片

    632d47a41ba49a9310ab34d5e7ba7b88.png

    d7244c58d26d3a37b51d67cc3b3630c4.png

    还是一个启动画面,之后进入登录页面,导航页面就不介绍了,大家可以参考微信的导航页面。首先程序进入SplashActivity,就是启动页面,Activity代码如下:

    package com.example.imitateqq;

    import android.app.Activity;

    import android.content.Intent;

    import android.os.Bundle;

    import android.os.Handler;

    public class SplashActivity extends Activity {

    private Intent intent;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.splash);

    startMainAvtivity();

    }

    private void startMainAvtivity() {

    new Handler().postDelayed(new Runnable() {

    public void run() {

    intent=new Intent(SplashActivity.this,QQ.class);

    startActivity(intent);

    SplashActivity.this.finish();//结束本Activity

    }

    }, 1000);//设置执行时间

    }

    }

    xml布局文件就是一个全屏的图片,要注意的是设置android:scaleType="matrix"这个属性。不然不会全屏

    xml version= "1.0" encoding = "utf-8"?>

    < LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"

    android:layout_width= "match_parent"

    android:layout_height= "match_parent"

    android:orientation= "vertical" >

    < ImageView

    android:layout_width ="match_parent"

    android:layout_height ="match_parent"

    android:scaleType ="matrix"

    android:src ="@drawable/splash" />

    LinearLayout>

    过1秒之后转入登陆页面,从图片我们可以看出,腾讯的UI做的还是相当美观漂亮的,既简洁又不失美观。先分析一下这个登录界面,从整体可以看出,根布局的背景色是蓝色的,而那个QQ 2012 Android其实是一个图片背景色和根布局的背景色一样,这样就不会有视觉偏差。下面就是两个文本框EditText了,注意这里和官方给的不一样,因为后面有一个小箭头,当点击这个箭头时,会在第一个文本框的下面显示已经输入的qq号码,在qq号码的后面还有删除qq信息的按钮。这个地方需要注意一下。再往下就是登陆Button以及那连个“记住密码”和“注册新账号”比较简单,注意位置的安排即可。最后就是最下面的“更多登陆选项”,当点击的时候会向上弹出一些内容,其实就是一个隐藏的布局,当点击上面的时候,使下面隐藏的布局显示。当然也可以使用滑动抽屉来做,但是相对来说比较麻烦。下面看一下xml代码,相信大家就会一路了然。

    < RelativeLayout xmlns:android ="http://schemas.android.com/apk/res/android"

    xmlns:tools= "http://schemas.android.com/tools"

    android:layout_width= "match_parent"

    android:layout_height= "match_parent"

    android:background= "@drawable/login_bg" >

    < ImageView

    android:id ="@+id/loginbutton"

    android:layout_width ="wrap_content"

    android:layout_height ="wrap_content"

    android:layout_centerHorizontal ="true"

    android:layout_marginTop ="50dp"

    android:src ="@drawable/login_pic" />

    android:id ="@+id/input"

    android:layout_width ="fill_parent"

    android:layout_height ="wrap_content"

    android:layout_below ="@id/loginbutton"

    android:layout_marginLeft ="28.0dip"

    android:layout_marginRight ="28.0dip"

    android:background ="@drawable/login_input"

    android:orientation ="vertical" >

    < LinearLayout

    android:layout_width ="fill_parent"

    android:layout_height ="44.0dip"

    android:background ="@drawable/login_input"

    android:gravity ="center_vertical"

    android:orientation ="horizontal" >

    < EditText

    android:id ="@+id/searchEditText"

    android:layout_width ="0dp"

    android:layout_height ="fill_parent"

    android:layout_weight ="1"

    android:background ="@null"

    android:ems ="10"

    android:imeOptions ="actionDone"

    android:singleLine ="true"

    android:textSize ="16sp" >

    < requestFocus />

    EditText>

    < Button

    android:id ="@+id/button_clear"

    android:layout_width ="20dip"

    android:layout_height ="20dip"

    android:layout_marginRight ="8dip"

    android:background ="@drawable/login_input_arrow"

    android:visibility ="visible" />

    LinearLayout>

    < View

    android:layout_width ="fill_parent"

    android:layout_height ="1.0px"

    android:layout_marginLeft ="1.0px"

    android:layout_marginRight ="1.0px"

    android:background ="#ffc0c3c4" />

    < EditText

    android:id ="@+id/password"

    android:layout_width ="fill_parent"

    android:layout_height ="44.0dip"

    android:background ="#00ffffff"

    android:gravity ="center_vertical"

    android:inputType ="textPassword"

    android:maxLength ="16"

    android:maxLines ="1"

    android:textColor ="#ff1d1d1d"

    android:textColorHint ="#ff666666"

    android:textSize ="16.0sp" />

    android:id ="@+id/buton1"

    android:layout_width ="270dp"

    android:background ="@drawable/chat_send_button_bg"

    android:paddingTop ="5.0dip"

    android:layout_height ="50dp"

    android:layout_marginLeft ="28.0dip"

    android:layout_marginRight ="28.0dip"

    android:layout_marginTop ="12.0dip"

    android:layout_below ="@+id/input"

    android:gravity ="center"

    android:textSize ="20dp"

    android:text = "登录" />

    android:id ="@+id/relative"

    android:layout_width ="fill_parent"

    android:layout_height ="wrap_content"

    android:layout_alignLeft ="@+id/input"

    android:layout_alignRight ="@+id/input"

    android:layout_below ="@id/buton1" >

    < CheckBox

    android:id ="@+id/auto_save_password"

    android:layout_width ="wrap_content"

    android:layout_height ="wrap_content"

    android:layout_alignParentLeft ="true"

    android:background ="@null"

    android:button ="@null"

    android:checked ="true"

    android:drawableLeft ="@drawable/checkbox_bg1"

    android:drawablePadding ="4.0dip"

    android:text = "记住密码"

    android:textColor ="#ffffffff"

    android:textSize ="12.0sp" />

    < Button

    android:id ="@+id/regist"

    android:layout_width ="wrap_content"

    android:layout_height ="wrap_content"

    android:layout_alignParentRight ="true"

    android:background ="@drawable/login_reg_normal"

    android:clickable ="true"

    android:gravity ="left|center"

    android:paddingLeft ="8.0dip"

    android:paddingRight ="18.0dip"

    android:text = "注册新账号"

    android:textColor ="#ffffffff"

    android:textSize ="12.0sp" />

    android:id ="@+id/more_bottom"

    android:layout_width ="fill_parent"

    android:layout_height ="wrap_content"

    android:layout_alignParentBottom ="true"

    android:background ="@drawable/login_moremenu_back"

    android:orientation ="vertical" >

    android:id ="@+id/input2"

    android:layout_width ="fill_parent"

    android:layout_height ="40dp"

    android:background ="@drawable/login_moremenu_back"

    android:orientation ="vertical" >

    < ImageView

    android:id ="@+id/more_image"

    android:layout_width ="wrap_content"

    android:layout_height ="wrap_content"

    android:layout_centerVertical ="true"

    android:layout_marginRight ="5.0dip"

    android:layout_toLeftOf ="@+id/more_text"

    android:clickable ="false"

    android:src ="@drawable/login_more_up" />

    < TextView

    android:id ="@+id/more_text"

    android:layout_width ="wrap_content"

    android:layout_height ="wrap_content"

    android:layout_centerInParent ="true"

    android:background ="@null"

    android:gravity ="center"

    android:maxLines ="1"

    android:text = "更多登陆选项"

    android:textColor ="#ffc6e6f9"

    android:textSize ="14.0sp" />

    android:id ="@+id/morehidebottom"

    android:layout_width ="fill_parent"

    android:layout_height ="wrap_content"

    android:orientation ="vertical"

    android:visibility ="gone" >

    < View

    android:layout_width ="fill_parent"

    android:layout_height ="1.0px"

    android:background ="#ff005484" />

    < View

    android:layout_width ="fill_parent"

    android:layout_height ="1.0px"

    android:background ="#ff0883cb" />

    < LinearLayout

    android:layout_width ="fill_parent"

    android:layout_height ="wrap_content"

    android:layout_marginLeft ="30.0dip"

    android:layout_marginRight ="30.0dip"

    android:layout_marginTop ="12.0dip"

    android:orientation ="horizontal" >

    < CheckBox

    android:id ="@+id/hide_login"

    android:layout_width ="1.0px"

    android:layout_height ="wrap_content"

    android:layout_weight ="2.0"

    android:background ="@null"

    android:button ="@null"

    android:checked ="false"

    android:drawableLeft ="@drawable/checkbox_bg1"

    android:drawablePadding ="4.0dip"

    android:text = "隐身登陆"

    android:textColor ="#ffc6e6f9"

    android:textSize ="12.0sp" />

    < CheckBox

    android:id ="@+id/silence_login"

    android:layout_width ="1.0px"

    android:layout_height ="wrap_content"

    android:layout_weight ="1.0"

    android:background ="@null"

    android:button ="@null"

    android:checked ="false"

    android:drawableLeft ="@drawable/checkbox_bg1"

    android:drawablePadding ="4.0dip"

    android:text = "静音登录"

    android:textColor ="#ffc6e6f9"

    android:textSize ="12.0sp" />

    LinearLayout>

    < LinearLayout

    android:layout_width ="fill_parent"

    android:layout_height ="wrap_content"

    android:layout_marginBottom ="18.0dip"

    android:layout_marginLeft ="30.0dip"

    android:layout_marginRight ="30.0dip"

    android:layout_marginTop ="18.0dip"

    android:orientation ="horizontal" >

    < CheckBox

    android:id ="@+id/accept_accounts"

    android:layout_width ="1.0px"

    android:layout_height ="wrap_content"

    android:layout_weight ="2.0"

    android:background ="@null"

    android:button ="@null"

    android:checked ="true"

    android:drawableLeft ="@drawable/checkbox_bg1"

    android:drawablePadding ="4.0dip"

    android:singleLine ="true"

    android:text = "允许手机/电脑同时在心线"

    android:textColor ="#ffc6e6f9"

    android:textSize ="12.0sp" />

    < CheckBox

    android:id ="@+id/accept_troopmsg"

    android:layout_width ="1.0px"

    android:layout_height ="wrap_content"

    android:layout_weight ="1.0"

    android:background ="@null"

    android:button ="@null"

    android:checked ="true"

    android:drawableLeft ="@drawable/checkbox_bg1"

    android:drawablePadding ="4.0dip"

    android:text = "接受群消息"

    android:textColor ="#ffc6e6f9"

    android:textSize ="12.0sp" />

    LinearLayout>

    LinearLayout>

    RelativeLayout>

    各个组件的使用没有问题,关键是如何设置他们的属性,来获得一个比较美观的效果,大家可以参考这个例子,来做一下练习,来强化UI的设计。从这个例子中就可以学到很多东西,比如ViwGroup的使用(如何枪套),background的设置,例如同时使用两个Edittext,设置android:background="@null"设置为空的时候就不会产生间隔了。这个要自己多做设计,时间长了就会有感悟了。最后看一下MainActivity的代码,布局简单package com.example.imitateqq;

    import android.os.Bundle;

    import android.app.Activity;

    import android.app.Dialog;

    import android.view.Menu;

    import android.view.View;

    import android.view.View.OnClickListener;

    import android.widget.Button;

    import android.widget.ImageView;

    public class QQ extends Activity implements OnClickListener{

    private Button login_Button;

    private View moreHideBottomView,input2;

    private ImageView more_imageView;

    private boolean mShowBottom = false;

    @Override

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_qq);

    initView();

    }

    private void initView() {

    login_Button=(Button) findViewById(R.id.buton1);

    login_Button.setOnClickListener(this);

    moreHideBottomView=findViewById(R.id.morehidebottom);

    more_imageView=(ImageView) findViewById(R.id.more_image);

    input2=findViewById(R.id.input2);

    input2.setOnClickListener( this);

    }

    public void showBottom(boolean bShow){

    if(bShow){

    moreHideBottomView.setVisibility(View.GONE);

    more_imageView.setImageResource(R.drawable.login_more_up);

    mShowBottom = true;

    }else{

    moreHideBottomView.setVisibility(View.VISIBLE);

    more_imageView.setImageResource(R.drawable.login_more);

    mShowBottom = false;

    }

    }

    public void onClick(View v) {

    switch(v.getId())

    {

    case R.id.input2:

    showBottom(!mShowBottom);

    break;

    case R.id.buton1:

    showRequestDialog();

    break;

    default:

    break;

    }

    }

    private Dialog mDialog = null;

    private void showRequestDialog()

    {

    if (mDialog != null)

    {

    mDialog.dismiss();

    mDialog = null;

    }

    mDialog = DialogFactory.creatRequestDialog(this, "正在验证账号...");

    mDialog.show();

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.activity_qq, menu);

    return true;

    }

    }最后效果如下:

    58f4dd0c39aeefe25a8fa55b8f640cab.png

    07dd344c81157f45308c8ebff107d9c0.png

    总结:本文可以作为一个UI练习Demo,大家可以自己独立去写,有问题的可以留下邮箱我给你发一下源码作为参考。下一篇将写主页面的实现,欢迎大家关注。

    展开全文
  • Android studio新手:实现最新版QQ登陆界面

    万次阅读 多人点赞 2018-05-25 20:12:11
    最新版QQ登陆界面如下:代码实现效果如下:activity_main.xml代码如下:&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;android.support.constraint.ConstraintLayout xmlns:...

    最新版QQ登陆界面如下:

    代码实现效果如下:

    activity_main.xml代码如下:
    <?xml version="1.0" encoding="utf-8"?>
    <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@drawable/qq13"
        tools:context=".MainActivity">
    
        <Button
            android:id="@+id/button4"
            android:layout_width="280dp"
            android:layout_height="32dp"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="248dp"
            android:background="@drawable/shape"
            android:text="登陆"
            android:textColor="#ffffff"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <EditText
            android:id="@+id/editText"
            android:layout_width="280dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="16dp"
            android:ems="10"
            android:hint="密码"
            android:textColorHint="#ffffff"
            android:inputType="textPassword"
            android:textColor="#ffffff"
            android:selectAllOnFocus="false"
            android:singleLine="false"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/editText3" />
    
        <EditText
            android:id="@+id/editText3"
            android:layout_width="280dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="130dp"
            android:ems="10"
            android:hint="QQ号/手机号/邮箱"
            android:textColorHint="#ffffff"
            android:textColor="#ffffff"
            android:inputType="textPersonName"
            android:textSize="18sp"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.503"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    
        <Button
            android:id="@+id/button2"
            android:layout_width="wrap_content"
            android:layout_height="23dp"
            android:layout_marginLeft="42dp"
            android:layout_marginStart="42dp"
            android:layout_marginTop="8dp"
            android:background="@android:color/transparent"
            android:text="忘记密码?"
            android:textAllCaps="false"
            android:textColor="#0066FF"
            android:textSize="12sp"
            android:typeface="normal"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/button4" />
    
        <Button
            android:id="@+id/button3"
            android:layout_width="wrap_content"
            android:layout_height="23dp"
            android:layout_marginEnd="42dp"
            android:layout_marginRight="42dp"
            android:layout_marginTop="8dp"
            android:background="@android:color/transparent"
            android:text="新用户注册"
            android:textAllCaps="false"
            android:textColor="#0066FF"
            android:textSize="12sp"
            android:typeface="normal"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/button4" />
    
        <ImageView
            android:id="@+id/imageView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="16dp"
            android:layout_marginStart="16dp"
            android:layout_marginTop="32dp"
            android:background="@drawable/shape"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@drawable/logo32" />
    
    </android.support.constraint.ConstraintLayout>

    注意在drawable中添加shape.xml实现圆角按钮效果
    shape.xml代码如下:
    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle">
        <solid android:color="#800066ff" />
        <corners android:radius="10dp" />
    </shape>
    
    同时,将背景图也得保存到drawable中。
    展开全文
  • android:text="登陆" android:gravity="center" android:textSize="25dp" android:textColor="#e8eaf6" /> 其中background使用了自定义的点击效果,按下按钮之后会变成深蓝色,放开之后恢复天蓝色。对应的bg...

    1.最后在手机中运行的效果:

     

    2.布局原理

    利用相对布局RelativeLayout的各种基础特征

    3.元素组件实现原理

    3.1顶层标题:yellow_flowers

    res\values\style.xml可以修改标题的背景色,默认是绿色。也可修改同级目录下的color.xml的默认配置颜色。

    res\values\string.xml中修改标题名

    3.2雪花logo实现

    雪花图标:

    利用<TextView>实现.

    <TextView>对应代码为:

    <TextView
            android:layout_marginTop="40dp"
            android:layout_marginBottom="40dp"
            android:id="@+id/tv02"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:text="Logo"
            android:textSize="28dp"
            android:drawableLeft="@drawable/ic_ac_unit_black_48dp"
            />

    3.3账号密码输入框的实现

    账号与密码图标:

    利用<EditText>实现

    对应代码:

        <EditText
            android:layout_below="@id/tv02"
            android:paddingTop="10dp"
            android:id="@+id/et01"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:textSize="20dp"
            android:textColor="#c6ff00"
            android:hint="用户名"
            android:background="@drawable/bg_btn03"
            android:paddingLeft="20dp"
            android:drawableLeft="@drawable/ic_account_box_black_48dp"
            android:drawablePadding="5dp"
            android:maxLines="1"
            />
    
        <EditText
            android:id="@+id/et02"
            android:layout_below="@+id/et01"
            android:layout_width="match_parent"
            android:layout_height="50dp"
            android:textSize="20dp"
            android:textColor="#c6ff00"
            android:hint="密码"
            android:inputType="textPassword"
            android:background="@drawable/bg_btn03"
            android:layout_marginTop="10dp"
            android:paddingLeft="20dp"
            android:drawableLeft="@drawable/ic_vpn_key_black_48dp"
            android:drawablePadding="5dp"
            android:maxLines="1"
            />

    其中background使用了自定义的原型框,对应的bg_btn03.xml代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="rectangle"
        >
    
        <!--<solid-->
            <!--android:color="#ffff00"-->
            <!--/>-->
    
        <stroke
            android:width="2dp"
            android:color="#4caf50"/>
    
        <corners
            android:radius="5dp"
            />
    
    </shape>

    3.3登陆按钮的实现

    利用<Button>元素实现:

    <Button>对应代码如下:

     <Button
            android:id="@+id/btn_login"
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:layout_below="@+id/et02"
            android:layout_marginTop="40dp"
            android:background="@drawable/bg_btn05"
            android:text="登陆"
            android:gravity="center"
            android:textSize="25dp"
            android:textColor="#e8eaf6"
            />

    其中background使用了自定义的点击效果,按下按钮之后会变成深蓝色,放开之后恢复天蓝色。对应的bg_btn5.xml代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android" >
    
        <item
            android:state_pressed="true">
            <shape>
                <solid android:color="#1a237e"/>
                <corners android:radius="5dp"/>
            </shape>
        </item>
    
        <item
            android:state_pressed="false">
            <shape>
                <solid android:color="#80d8ff"/>
                <corners android:radius="5dp"/>
            </shape>
        </item>
    
    
    </selector>

    另外,按钮在main函数中设置了点击事件,代码在后面的java代码中。

    3.4忘记密码,注册新用户

    这里是两个简单的<TextView>,需要注意的是注册新用户的<TextView>需要相对父类视图向右对其。

    对应代码如下:

        <TextView
            android:layout_margin="20dp"
            android:id="@+id/tv03"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="忘记密码?"
            android:layout_below="@id/btn_login"
            android:textColor="#80d8ff"
            />
        <TextView
            android:layout_margin="20dp"
            android:id="@+id/tv04"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="新用户注册"
            android:textColor="#80d8ff"
            android:layout_below="@id/btn_login"
            android:layout_alignParentRight="true"
    
    
            />

    4.提示登陆成功消息以及输入日志的实现

    给<Button>设置点击事件,弹出登陆成功消息。

    给<EditView>设置Change事件中的OnChange方法,在日志中打出输入内容。

    具体代码如下:

    package com.example.asus.buttonproject;
    
    import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.text.Editable;
    import android.text.TextWatcher;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    
    public class MainActivity extends AppCompatActivity {
    
        Button mBtn01;
        EditText mEdt01;
    
    
    
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            mBtn01 = findViewById(R.id.btn_login);
    
            mBtn01.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Toast.makeText(MainActivity.this,"登陆成功",Toast.LENGTH_SHORT).show();
    
                }
            });
    
            mEdt01 = findViewById(R.id.et01);
            mEdt01.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    
                }
    
                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                    Log.d("edittext",s.toString());
    
                }
    
                @Override
                public void afterTextChanged(Editable s) {
    
                }
            });
        }
    }
    

    5.开发者视图效果

    代码下载地址:点此下载

    后续还会不断完善该软件的功能,表单信息检验,各项元素功能的实现,数据库数据的连接,如果刚兴趣的可以保持关注。

     

     

     

    展开全文
  • 包括Android 移动开发基础案例教程课本中第二章实战演练——制作QQ登录界面的源代码,可用Android studio运行,适合初学者学习。
  • android布局基础及范例(一):QQ登陆界面设计

    万次阅读 热门讨论 2011-10-31 12:39:10
    使用android手机的用户想必都有android手机QQ客户端吧,我们是不是觉得QQ登陆界面非常漂亮美观而且具有亲和力?我们是不是也想作出像QQ那样美观的界面?有的人肯定会问,做UI那不是美工人员的工作吗?是的,不能否认...

    使用android手机的用户想必都有android手机QQ客户端吧,我们是不是觉得QQ登陆界面非常漂亮美观而且具有亲和力?我们是不是也想作出像QQ那样美观的界面?有的人肯定会问,做UI那不是美工人员的工作吗?是的,不能否认UI的设计美工有很大的功劳,但是程序员的设计也同样重要,下面我向讲解3种常见的布局设计LinearLayout,TableLayout,RelativeLayout,我会重点讲解最后一种

    我们先来看一下设计好的QQ登录界面:


    是不是和真正的手机QQ界面一样?

    下面开始讲解:

    1.LinearLayout

    线性布局,最常规的布局,在XML文件中我们只需要规定布局的大小,如width(宽),height(高)等值,还有orientation(方向),我们就可以把控件依次填入其中,控件就会按照我们规定的方向线性填入,这里不再多说,不懂的朋友请参考API文档或者查看网络其它相关博客。

    2.TableLayout


    表格布局,一种很有规格的布局,既然是表格,自然会有行列之分,我们建立好<TableLayout>标签后,里面加入子标签<TableRow>,在这个标签里面依次加入控件,则控件会在该行依次显示,每次加入子标签<TableRow>,布局就会多出一行,这些用法都比较基础,以上两种我不做过多讲解。

    3.RelativeLayout

    相对布局,我为什么要着重讲解这个呢?因为这个布局非常灵活,可以进行很细致化的布局,可谓是布局中的重中之重,那么我们怎么理解这个相对呢?相信大家学过高中物理吧,我们要描述物体的位置和运动需要有参照系(参照物),比如有一个广场,我们拿它作为参照物,那么我们描述一个商场的位置时候可以说,商场在广场的南面。相对布局就是这个道理,控件放置的时候采用这种模式,可以让人们更好的放置控件到自己想要的位置,那么我们说了,既然是相对,那么答案是不唯一的吧?没错,打个比方,还是那个广场,如果又有一幢居民楼在广场的西面,那么我们也可以说商场在居民楼的东南面,是不是很容易理解?

    下面我们先来看一下RelativeLayout 用到的一些重要的属性:

    —————————————————————————————————————-

    第一类:属性值为 true 或 false
    android:layout_centerHrizontal 水平居中
    android:layout_centerVertical 垂直居中
    android:layout_centerInparent 相对于父元素完全居中

    android:layout_alignParentBottom 贴紧父元素的下边缘

    android:layout_alignParentLeft 贴紧父元素的左边缘

    android:layout_alignParentRight 贴紧父元素的右边缘

    android:layout_alignParentTop 贴紧父元素的上边缘

    android:layout_alignWithParentIfMissing 如果对应的兄弟元素找不到的话 就以

    父元素做参照物

    第二类:属性值必须为 id 的引用名“@id/id-name”

    android:layout_below 在某元素的下方
    android:layout_above 在某元素的的上方
    android:layout_toLeftOf 在某元素的左边
    android:layout_toRightOf 在某元素的右边

    android:layout_alignTop 本元素的上边缘和某元素的的上边缘对齐

    android:layout_alignLeft 本元素的左边缘和某元素的的左边缘对齐

    android:layout_alignBottom 本元素的下边缘和某元素的的下边缘对齐

    android:layout_alignRight 本元素的右边缘和某元素的的右边缘对齐

    第三类:属性值为具体的像素值,如 30dip,40px

    android:layout_marginBottom 离某元素底边缘的距离

    android:layout_marginLeft 离某元素左边缘的距离 离某元素右边缘的距离

    android:layout_marginRight
    android:layout_marginTop 离某元素上边缘的距离

    EditText 的 android:hint

    设置 EditText 为空时输入框内的提示信息。

    android:gravity
    android:gravity 属性是对该 view 内容的限定.比如一个 button 上面的 text.

    你 可 以 设 置 该 text 在 view 的 靠 左 , 靠 右 等 位 置 . 以 button 为

    例 , android:gravity=”right”则 button 上面的文字靠右

    android:layout_gravity
    android:layout_gravity 是用来设置该 view 相对与起父 view 的位置.比如一个

    button 在 linearlayout 里,你想把该 button 放在靠左、靠右等位置就可以通过

    该 属性设置.以 button 为例,android:layout_gravity=”right”则 button 靠右

    android:layout_alignParentRight
    使当前控件的右端和父控件的右端对齐。这里属性值只能为 true 或 false,默认

    false。

    android:scaleType:
    android:scaleType 是控制图片如何 resized/moved 来匹对 ImageView 的 size。

    ImageView.ScaleType / android:scaleType 值的意义区别:

    CENTER /center 按图片的原来 size 居中显示,当图片长/宽超过 View 的长/宽,

    则截取图片的居中部分显示

    CENTER_CROP / centerCrop 等于或大于 View 的长(宽) 按比例扩大图片的 size

    居中显示, 使得图片长(宽)

    CENTER_INSIDE / centerInside 将图片的内容完整居中显示,通过按比例缩小 或

    原来的 size 使得图片长/宽等于或小于 View 的长/宽

    FIT_CENTER / fitCenter 把图片按比例扩大/缩小到 View 的宽度,居中显示

    FIT_END / fitEnd 把图片按比例扩大/缩小到 View 的宽度,显示在 View 的下部

    分位置

    FIT_START / fitStart 把图片按比例扩大/缩小到 View 的宽度,显示在 View 的

    上部分位置

    FIT_XY / fitXY 把图片 不按比例扩大/缩小到 View 的大小显示

    MATRIX / matrix 用矩阵来绘制,动态缩小放大图片来显示。

    —————————————————————————————————————-

    我们来看一幅图片和一段代码:


     —————————–XML布局文件————————————–

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:padding="10px">
          <TextView android:id="@+id/label"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="Type here:"/>
          <EditText android:id="@+id/entry"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:background="@android:drawable/editbox_background"
                    android:layout_below="@id/label"/>
     
          <Button android:id="@+id/ok"
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_below="@id/entry"
                  android:layout_alignParentRight="true"
                  android:layout_marginLeft="10px"
                  android:text="OK"/>
          <Button android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:layout_toLeftOf="@id/ok"
                  android:layout_alignTop="@id/ok"
                  android:text="Cancel"/>
    </RelativeLayout>

    大家想想,最后一个Button控件
    android:layout_alignTop=”@id/ok” 这个选项可不可以替换成:android:layout_below=”@id/entry” ? 
    道理是不是和那个广场问题一样呢?
    好的UI界面都是多元化的,所以单一布局结构做不出各式各样的漂亮美观的界面,所以一个界面往往有很多布局结构——布局嵌套

    布局嵌套例子参考学习可以查看别人的博客学习,这里由于篇幅有限,我们不做详细介绍

    大家可以参考这篇博客试着自己做一个布局嵌套的例子  http://www.cnblogs.com/jetz/archive/2011/07/24/2115244.html

    由于QQ登陆界面设计的代码比较长,我就不在这里贴出来了,我会弄源码下载,希望各位多多支持。


    参考资料:http://wenku.baidu.com/view/d9098561ddccda38376baf29.html

    —————————————————————————————————

    QQ登陆界面布局源代码下载:

    TestLogin
    展开全文
  • Android如何制作一个简单的登陆界面

    千次阅读 2017-03-15 11:37:20
    首先,你需要一个 简单的背景颜色, 在中央上方做一个需要用户输入用户名的文本框,以及相关的... ... Android:selectAllOnFocus="true" //选择所有对焦点 输入框控件EditText android:inputType="numberPassword" /
  • android 仿QQ登录界面

    2016-08-14 10:13:25
    最近做的一个仿QQ登录界面,效果图可以看http://blog.csdn.net/qq83667664/article/details/52201846
  • 代码: activity_main.xml ...<TableLayout android:id="@+id/tableLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/re
  • Android仿QQ登陆

    万次阅读 多人点赞 2012-11-09 14:43:48
    今天根据腾讯qq,我们做一个练习,来学习如何制作一个漂亮的布局。首先看一下官方图片  还是一个启动画面,之后进入登录页面,导航页面就不介绍了,大家可以参考微信的导航页面。首先程序进入SplashActivity,...
  • 该文件是QQ登录界面的源码,利用Android Studiok编写。
  • 手机QQ登录界面的设计 Intent的显式跳转和隐式跳转 EditText点击小图标清除输入框内容 EditText密码输入框中密码可见与不可见的切换 使用Fragment实现底部导航栏切换界面 PopupMenu的简单使用 二、实验环境: ...
  • android studio登录界面

    2018-07-17 12:03:59
    android studio 简单的登录界面,模仿QQ登录界面做的。
  • Android Studio实现简单的QQ登录界面

    万次阅读 多人点赞 2020-06-06 15:41:45
    登录界面制作比较简单,主要考验布局的使用,是实现QQ项目的第一步。现在APP开发的首要工作都是实现登录页面,所以学会了QQ登录界面对以后的软件开发有着很重要的作用。 二、开发环境 三、详细设计 1、头像设计 ...
  • 今天根据腾讯qq,我们做一个练习,来学习如何制作一个漂亮的布局仿QQ登陆,还是一个启动画面,之后进入登录页面,导航页面就不介绍了,大家可以参考微信的导航页面 今天根据腾讯qq,我们做一个练习,来学习...
  • 1.默认勾选“记住密码”复选框,点击“登陆”按钮,一旦成功登陆,就保存用户名和密码到SharedPreferences文件中。 2.用户名输入时,通过TextWatcher不断去读取用户数据,自动提示相应的“用户名”,选择了用户名...
  • Android仿QQ登录界面示例,实现登录、注册功能。

    万次阅读 多人点赞 2018-08-28 17:58:22
    Android开发经常用到注册、登录功能,于是便整理出一般通用的登录界面,并实现其相应功能。供读者参阅。此项目包含三个活动,即登录,注册界面,找回密码。 首先是登录界面 activity_main.xml: &lt;?...
  • android studio注册界面

    2018-07-17 12:05:52
    android studio的注册界面,与登录界面使用同一风格。
  • HTML练习制作邮箱登陆界面

    千次阅读 2016-10-12 16:26:18
    全面支持iPhone/iPad及Android等系统 客户端、手机与网页,实现发送、阅读邮件立即同步普通登录手机号登录 普通登录  用户名:@163.com  密 码:  版 本: 默认 极速 简约  自动登录 SSL
  • Android studio 做出QQ登录界面

    千次阅读 2020-06-02 20:54:29
    1.布局界面代码如下: <?xml version="1.0" encoding="utf-8"?> <ImageView android:id="@+id/iv" android:layout_width="70dp" android:layout_height="70dp" android:layout_centerHorizontal="true...
  • 【1】画UI ...【2.1】QQ图标,ImageView android:id="@+id/login_picture" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ba
  • 登录QQ的时候,我们会看到在登录界面的背景不是静态的,而是一段动画效果,刚开始觉得蛮好奇的,现在我们也来实现一下这种效果,实现起来还是挺简单的。 实现步骤: 1、自定义CustomVideoView类继承VideoView 2、...
  • 数据存储--SharedPreferences--仿QQ登陆界面记住密码效果 SharedPreferences:共享数据存储 实现效果:1 用户输入用户名和密码,点击记住密码时,记住此用户名和密码,否则报空  2 用户点击登陆时,首先判断是否记住密码,...
  • 制作QQ登录界面

    千次阅读 2019-05-25 17:51:44
    制作QQ登录界面实验名称实验步骤1.程序大致理解2.代码实现总结 实验名称 QQ登录界面 实验步骤 1.程序大致理解 在构建UI界面时不要着急动手,首先要考虑准备哪些素材(如:图片资源),会用到哪些控件,把步骤想...
  • Android仿写QQ用户注册,登录界面实现,不过这个QQ登录界面好像有些老了,是前几年的,但是也挺漂亮的,开发其它Android应用时或许可以做个参考。这个登录界面上有登录框、面包宵菜单、复选框等基本的界面控件,另外...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 783
精华内容 313
关键字:

androidqq登录界面的制作