android怎么做动态的登陆界面

android怎么做动态的登陆界面,第1张

设计android的登录界面的方法:

UI实现的代码如下:

1、背景设置:

background_loginxml

<xml version="10" encoding="utf-8">

<shape xmlns:android=">

<gradient

android:startColor="#FFACDAE5"

android:endColor="#FF72CAE1"

android:angle="45"

/>

</shape>

2、圆角白框

效果图上面的并不是白框,其实框是白色的,只是设置了透明值,也是靠一个xml文件实现的。

background_login_divxml

<xml version="10" encoding="UTF-8">

<shape xmlns:android=">

<solid android:color="#55FFFFFF" />

<!-- 设置圆角

注意: bottomRightRadius是左下角而不是右下角  bottomLeftRadius右下角-->

<corners android:topLeftRadius="10dp" android:topRightRadius="10dp"

android:bottomRightRadius="10dp" android:bottomLeftRadius="10dp"/>

</shape>

3、界面布局:

loginxml

<xml version="10" encoding="utf-8">

<LinearLayout

xmlns:android=">

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:background="@drawable/background_login">

<!-- padding 内边距   layout_margin 外边距

android:layout_alignParentTop 布局的位置是否处于顶部 -->

<RelativeLayout

android:id="@+id/login_div"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:padding="15dip"

android:layout_margin="15dip"

android:background="@drawable/background_login_div_bg" >

<!-- 账号 -->

<TextView

android:id="@+id/login_user_input"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentTop="true"

android:layout_marginTop="5dp"

android:text="@string/login_label_username"

style="@style/normalText"/>

<EditText

android:id="@+id/username_edit"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:hint="@string/login_username_hint"

android:layout_below="@id/login_user_input"

android:singleLine="true"

android:inputType="text"/>

<!-- 密码 text -->

<TextView

android:id="@+id/login_password_input"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@id/username_edit"

android:layout_marginTop="3dp"

android:text="@string/login_label_password"

style="@style/normalText"/>

<EditText

android:id="@+id/password_edit"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_below="@id/login_password_input"

android:password="true"

android:singleLine="true"

android:inputType="textPassword" />

<!-- 登录button -->

<Button

android:id="@+id/signin_button"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_below="@id/password_edit"

android:layout_alignRight="@id/password_edit"

android:text="@string/login_label_signin"

android:background="@drawable/blue_button" />

</RelativeLayout>

<RelativeLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content" >

<TextView  android:id="@+id/register_link"

android:text="@string/login_register_link"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginLeft="15dp"

android:textColor="#888"

android:textColorLink="#FF0066CC" />

<ImageView android:id="@+id/miniTwitter_logo"

android:src="@drawable/cat"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentRight="true"

android:layout_alignParentBottom="true"

android:layout_marginRight="25dp"

android:layout_marginLeft="10dp"

android:layout_marginBottom="25dp" />

<ImageView android:src="@drawable/logo"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_toLeftOf="@id/miniTwitter_logo"

android:layout_alignBottom="@id/miniTwitter_logo"

android:paddingBottom="8dp"/>

</RelativeLayout>

</LinearLayout>

4、java源代码,Java源文件比较简单,只是实例化Activity,去掉标题栏。

package commytwitteracitivity;

import androidappActivity;

import androidosBundle;

import androidviewWindow;

public class LoginActivity extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

superonCreate(savedInstanceState);

requestWindowFeature(WindowFEATURE_NO_TITLE);

setContentView(Rlayoutlogin);

}

}

5、实现效果如下:

在使用Windows7系统一阵时间后,对登录界面出现了视觉疲劳。每天都看着同样熟悉的登录屏幕,渐渐觉得有些单调。微软Windows系统都支持更换登录界面背景图,那么Win7也不例外。可是,在XP和Vista中,修改登录界面的背景图一般是先用ResHacker之类的工具替换Logonuiexe文件中的原有,接着将修改后的Logonuiexe文件替换“X:”(X为系统盘,下同)目录下的同名文件来实现。想想看吧!这真是一个很麻烦的过程,而且有一定的风险,搞不好系统还会因此而无法正常使用。小陈不想因为更换登录背景图而使系统崩溃,叫来Jacky帮忙。Jacky的回答让小陈大吃一惊,原来Win7系统支持自定义登录界面的背景,修改登录界面的背景方便多了。在Win7系统中,只需了解几个简单的步骤,即可自定义Win7系统登录界面背景图。

1打开注册表编辑器:点击Windows的“开始”按钮,键入“regedit”进入搜索框,然后按“回车”。

2在注册表依次展开,找到以下键值:HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows///LogonUI/Background将的值改为“1”。

3再次点击“开始”按钮,然后键入“%windir%/system32/oobe”(无引号),按回车,将自定义登录背景复制粘贴到此处。新键文件夹,将其命名为“info”。再新建一个子文件夹,并命名为“backgrounds”。将新的背景图像和文件重命名为“jpg”。

4重启计算机:自定义Windows7登录界面背景图即时生效。

建议:更改注册表键值前,对Win7系统做个备份。若出现问题可用备份文件还原。

注:上面的方法是通过修改注册表来实现的小白看了看估计会晕其实还有一个非常简单的方法用windows7优化大师就行(点击下载此软件)打开WIN7优化大师找到系统美化,里面可以修改登录启动界面,只要选一张自己喜欢的就可以了当然了为了漂亮不变形,要选一张和你的桌面壁纸一样大小的

背景图像加载很简单,你只需要做以下几步即可(假设你的登陆界面对话框类名叫“CLoginDlg”):
(1)菜单“Insert”->"Resource",选择Bitmap,然后点“Import”,选择你的背景图像,然后假设该资源ID为“IDB_BITMAP1”;
(2)在LoginDlgh下声明一个CBitmap m_BKbitmap;
(3)在LoginDlgcpp的构造函数中:m_BKbitmapLoadBitmap(IDB_BITMAP1);
(4)在LoginDlgcpp的OnPaint()函数中写上:
void CLoginDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
if (IsIconic())
{
SendMessage(WM_ICONERASEBKGND, (WPARAM) dcGetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rectWidth() - cxIcon + 1) / 2;
int y = (rectHeight() - cyIcon + 1) / 2;
// Draw the icon
dcDrawIcon(x, y, m_hIcon);
}
else
{
BITMAP bm;
CRect rect;
CDC dcMem;
m_BKbitmapGetBitmap (&bm);
GetClientRect(&rect);
dcMemCreateCompatibleDC (&dc);
CBitmap oldbitmap=dcMemSelectObject (&m_BKbitmap);
dcBitBlt (0,0,bmbmWidth ,bmbmHeight ,&dcMem,0,0,SRCCOPY);
dcMemSelectObject(oldbitmap);
CDialog::OnPaint();
}
}
你的问题就OK了。
关于按钮控件显示,建议你可以下载一个CButton的继承类,什么“CButtonST”啊、“CBtnST”啊、“CDlgShadeButtonST”啊,自己手写的话不划算,有很多现成的控件类,都写的非常好,完全可以拿来为我们所用。

首先说明一下,编译环境是win 7 --Visual Studio 2015中文版,使用的语言是C#

1一开始,打开Visual Studio 2015,左上角文件→新建→项目

2选择C#windows窗体程序(里面的名字、路径随意)

3点击右侧的工具箱,如果你的视图没有,在顶部的菜单栏里视图(V)→工具箱(X)点出来

4在这里,讲解三个控件Button、Label、TextBox,因为这个界面只需要用到这三个控件即可,如图:

5先左键或者按住左键拖动Label,将鼠标移动到中心区域的窗口界面,选择合适的位置左键。

6选中任意一个label,在右边的工具栏下方有一个属性,左键它,将Text信息更改为“用户名”,下一个label同理

7熟悉了上面label的拖动和更改,同样 *** 作的Button和TextBox我就不演示了,下面直接上做好界面的

8将鼠标移动到登录按钮,双击它,编写点击事件。

 private void button1_Click(object sender, EventArgs e)
        {
            string name = "111";  //用户名 与 ID为textBox1控件的字符串比较
            string password = "123456";  //比较密码
            if (stringEquals(textBox1Text, name) && stringEquals(textBox2Text, password))
                MessageBoxShow("登录成功!");
            else
                MessageBoxShow("用户名或者密码错误,请重新输入。");
        }

9编写好点击事件之后就是运行调试程序了。在顶部的菜单栏调试(D)→开始执行(不调试),运行如图所示,只演示了输入正确的情况,错误的情况可自行测试。

10到现在,一个简单登录界面的程序就写完了。

11输入密码的时候要变成暗文,可以左键相应的textbox,在右边的属性项里面找到passwordChar修改成即可

注意事项:上文只是演示了程序内部定义用户名和密码的情况,如果是连接 数据库 或者 服务器 匹配用户名密码的,请自行参阅相关资料。

很多用户在开发 ASPNET 应用程序时都有这样的需求:管理员角色的账户使用管理员的登录界面进行登录,普通用户角色的账户使用普通用户的登录界面进行登录。由于ASPNET的webconfig里只能使用一个 authentication mode="Forms" 节点,所以,要实现不同用户采用不同的登录界面,一个办法就是创建一个管理员专用的虚拟目录,并设置为应用程序来实现。下面介绍另外一种采用重定向的办法来解决这个问题。 本文介绍的方法原理是根据登录界面的返回地址进行判断,然后重定向到不同的页面。下面就是实现的详细过程。 1,创建一个网站,在网站里创建Admin文件夹和User文件夹,分别存放admin和普通用户所使用的文件。也可以只设置一个 Admin 文件夹。由于本方法采用的判断返回路径的方法,所以,要能从路径中区分出哪些是admin用户使用的文件夹。当然,采用其他的判断方法也是可以的。 2,在网站根目录下分别创建3个登录文件:Loginaspx、UserLoginaspx和AdminLoginaspx。其中Loginaspx文件起地址转换的作用,Loginaspx文件的主要内容: protected void Page_Load(object sender, EventArgs e) { String ReturnUrl = RequestQueryString["ReturnUrl"]; if (ReturnUrl == null || ReturnUrlEquals(StringEmpty)) { //默认情况下,按普通用户进行登录 ResponseRedirect("~/UserLoginaspx"); } else { if (ReturnUrlToLower()Contains("/admin/")) { ResponseRedirect("~/AdminLoginaspxReturnUrl=" + ServerUrlEncode(ReturnUrl)); } else { ResponseRedirect("~/UserLoginaspxReturnUrl=" + ServerUrlEncode(ReturnUrl)); } } 在这个文件的代码中,如果ReturnUrl中含有"/admin/",就重定向到AdminLoginaspx登录界面;否则,就重定向到 UserLoginaspx 登录界面。 UserLoginaspx这个文件的内容如下: < %@ Page Language="C#" % > < !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 10 Transitional//EN" " >

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12627539.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存