设计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修改成即可
注意事项:上文只是演示了程序内部定义用户名和密码的情况,如果是连接 数据库 或者 服务器 匹配用户名密码的,请自行参阅相关资料。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)