首页 文章 精选 留言 我的

精选列表

搜索[界面优化],共10008篇文章
优秀的个人博客,低调大师

安卓注册登录界面示例

版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.csdn.net/Jailman/article/details/78020173 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="online.geekgalaxy.layoutlearn"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".login"> <intent-filter> <action android:name="android.intent.action.MAIN" /> </intent-filter> </activity> <activity android:name=".register"> <intent-filter> <action android:name="android.intent.action.MAIN" /> </intent-filter> </activity> </application> </manifest> MainActivity.java package online.geekgalaxy.layoutlearn; import android.content.DialogInterface; import android.content.Intent; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //login button final Button login = (Button) findViewById(R.id.button); final String user = "admin"; final String pass = "hello"; login.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { String username = ""; EditText editText1 = (EditText)findViewById(R.id.editText); username = editText1.getText().toString(); String password = ""; EditText editText2 = (EditText)findViewById(R.id.editText2); password = editText2.getText().toString(); if (username.equals(user) & password.equals(pass)) { Intent intent = new Intent(MainActivity.this, login.class); startActivity(intent); } else { new AlertDialog.Builder(MainActivity.this).setTitle("Error!").setMessage("Wrong username or password.") .setNegativeButton("OK",null) .show(); } } }); //register button final Button register = (Button) findViewById(R.id.button2); register.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { //提示框确定是否跳转 new AlertDialog.Builder(MainActivity.this).setTitle("Jump").setMessage("Ready to jump?") .setPositiveButton("Yes", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { Intent intent = new Intent(MainActivity.this, register.class); startActivity(intent); }}) .setNegativeButton("No",null) .show(); } }); } } login.java package online.geekgalaxy.layoutlearn; import android.app.Activity; import android.os.Bundle; /** * Created by jailman on 2017/9/18. */ public class login extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); } } register.java package online.geekgalaxy.layoutlearn; import android.app.Activity; import android.os.Bundle; /** * Created by jailman on 2017/9/18. */ public class register extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.register); } } 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:layout_centerVertical="true" tools:context="online.geekgalaxy.layoutlearn.MainActivity"> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginRight="68dp" android:text="@string/login" app:layout_constraintRight_toLeftOf="@+id/button2" tools:layout_constraintTop_creator="1" android:layout_marginEnd="68dp" android:layout_marginTop="26dp" app:layout_constraintTop_toBottomOf="@+id/editText2" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/register" tools:layout_constraintTop_creator="1" tools:layout_constraintRight_creator="1" android:layout_marginEnd="68dp" app:layout_constraintRight_toRightOf="parent" android:layout_marginTop="26dp" app:layout_constraintTop_toBottomOf="@+id/editText2" /> <EditText android:id="@+id/editText" android:layout_width="240dp" android:layout_height="45dp" android:layout_marginBottom="35dp" android:layout_marginEnd="68dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:layout_marginStart="68dp" android:ems="10" android:hint="@string/username" android:inputType="textPersonName" app:layout_constraintBottom_toTopOf="@+id/editText2" app:layout_constraintHorizontal_bias="0.516" app:layout_constraintLeft_toLeftOf="@+id/editText2" app:layout_constraintRight_toRightOf="@+id/editText2" tools:layout_constraintLeft_creator="1" tools:layout_constraintRight_creator="1" tools:layout_editor_absoluteX="-15dp" tools:layout_editor_absoluteY="152dp" /> <EditText android:id="@+id/editText2" android:layout_width="240dp" android:layout_height="45dp" android:layout_marginEnd="69dp" android:layout_marginLeft="0dp" android:layout_marginRight="0dp" android:layout_marginStart="69dp" android:ems="10" android:hint="@string/password" android:inputType="textPassword" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="@+id/button" app:layout_constraintRight_toRightOf="@+id/button2" app:layout_constraintTop_toTopOf="parent" tools:layout_constraintBottom_creator="1" tools:layout_constraintLeft_creator="1" tools:layout_constraintRight_creator="1" tools:layout_constraintTop_creator="1" /> <TextView android:id="@+id/textView2" android:layout_width="250dp" android:layout_height="65dp" android:layout_marginBottom="50dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:autoText="false" android:text="Welcome" android:textAlignment="center" android:textSize="50sp" android:textStyle="bold" app:layout_constraintBottom_toTopOf="@+id/editText" app:layout_constraintHorizontal_bias="0.509" app:layout_constraintLeft_toLeftOf="@+id/editText" app:layout_constraintRight_toRightOf="@+id/editText" /> </android.support.constraint.ConstraintLayout> login.xml <?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:weightSum="1"> <TextView android:id="@+id/textView3" android:layout_width="0dp" android:layout_height="118dp" android:layout_marginTop="200dp" android:layout_weight="1" android:text="@string/great_you_ve_login" android:textAlignment="center" android:textSize="24sp" android:textStyle="bold" /> </LinearLayout> register.xml <?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"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_vertical|center_horizontal" android:orientation="vertical"> <EditText android:id="@+id/editText5" android:layout_width="270dp" android:layout_height="wrap_content" android:ems="10" android:hint="Username" android:inputType="textPersonName" /> <EditText android:id="@+id/editText6" android:layout_width="270dp" android:layout_height="wrap_content" android:ems="10" android:hint="Email" android:inputType="textPersonName" /> <EditText android:id="@+id/editText7" android:layout_width="270dp" android:layout_height="wrap_content" android:ems="10" android:hint="Password" android:inputType="textPassword" /> <EditText android:id="@+id/editText8" android:layout_width="270dp" android:layout_height="wrap_content" android:ems="10" android:hint="Confirm password" android:inputType="textPassword" /> <Button android:id="@+id/button3" android:layout_width="270dp" android:layout_height="wrap_content" android:text="Submit" /> </LinearLayout> </LinearLayout> strings.xml <resources> <string name="app_name">LayoutLearn</string> <string name="login">Login</string> <string name="register">Register</string> <string name="username">Username</string> <string name="password">Password</string> <string name="great_you_ve_login">Great, you\'ve logged in!</string> </resources> build.gradle apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.3" defaultConfig { applicationId "online.geekgalaxy.layoutlearn" minSdkVersion 19 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' }

优秀的个人博客,低调大师

ios 界面间跳转方法总结

方式一:Storyboard的segues方式 鼠标点击按钮button然后按住control键拖拽到SVC页面,在弹出的segue页面中选择跳转模式即可 优点:操作方便,无代码生成,在storyboard中展示逻辑清晰 缺点:页面较多时不方便查看,团队合作时可维护性差, 多人合作时不建议使用这种方式。 方式二:选项卡UITabBarController控制器 通过调用UITabBarController的addChildViewController方法添加子控制器,代码实例如下: 1 2 3 4 5 6 7 8 9 10 UITabBarController *tabbarVC = [[ UITabBarController alloc ] init ]; FirstViewController *FVC = [[FirstViewController ] init ]; FVC.tabBarItem.title = @ "控制器1" ; FVC.tabBarItem.image = [ UIImage imageNamed : @ "first.png" ]; SecondViewController *SVC = [[SecondViewController ] init ]; SVC.tabBarItem.title = @ "控制器2" ; SVC. tabBarItem.image = [UIImage imageNamed : @ "new.png" ]; // 添加子控制器(这些子控制器会自动添加到UITabBarController的 viewControllers 数组中) [tabbarVC addChildViewController :FVC]; [tabbarVC addChildViewController :SVC]; 优点:代码量较少 缺点:tabbar的ios原生样式不太好看,(不常用,目前不建议使用),如果要使用,建议自定义tabbar 方式三:导航控制器UINavigationController 在FVC的button的监听方法中调用: 1 [self.navigationController pushViewController:newC animated:YES]; //跳转到下一页面 在SVC的方法中调用: 1 [self.navigationController popViewControllerAnimated:YES]; //返回上一页面 当有多次跳转发生并希望返回根控制器时,调用: 1 [ self .navigationController popToRootViewControllerAnimated: YES ]; //返回根控制器,即最开始的页面 方式四:利用 Modal 形式展示控制器 在FVC中调用: 1 [ self presentViewController:SVC animated: YES completion:nil]; 在SVC中调用: 1 [ self dismissViewControllerAnimated: YES completion: nil ]; 方式五:直接更改UIWindow 的 rootViewController 总结: Storyboard方式适合个人开发小程序时使用,有团队合作或者项目较大时不建议使用 UITabBarController因为目前系统的原生样式不太美观,不建议使用 推荐使用UINavigationController和Modal,无明显缺点,而且目前大部分程序都使用这两种方式,只是看是否需要导航控制器而确定使用哪种方案

优秀的个人博客,低调大师

azkaban web ui界面出现异常诡异“丑”界面的问题解决(图文详解)

问题详情 [hadoop@master conf]$ pwd /home/hadoop/app/azkaban/azkaban-web-2.5.0/conf [hadoop@master conf]$ ll total 8 -rw-r--r-- 1 hadoop hadoop 1152 Jul 6 00:09 azkaban.properties -rw-r--r-- 1 hadoop hadoop 330 May 1 15:18 azkaban-users.xml [hadoop@master conf]$ vim azkaban.properties [hadoop@master azkaban-web-2.5.0]$ pwd /home/hadoop/app/azkaban/azkaban-web-2.5.0 [hadoop@master azkaban-web-2.5.0]$ ll total 168 -rw-rw-r-- 1 hadoop hadoop 47932 May 21 12:47 azkaban-access.log -rw-r--r-- 1 hadoop hadoop 105 Apr 22 2014 azkaban.version -rw-rw-r-- 1 hadoop hadoop 73408 May 21 12:47 azkaban-webserver.log drwxr-xr-x 3 hadoop hadoop 4096 Jul 6 00:06 bin drwxr-xr-x 2 hadoop hadoop 4096 Jul 6 00:16 conf -rw-rw-r-- 1 hadoop hadoop 5 Jul 6 00:10 currentpid drwxr-xr-x 2 hadoop hadoop 4096 May 1 14:43 extlib -rw-rw-r-- 1 hadoop hadoop 2211 May 1 14:39 keystore drwxr-xr-x 2 hadoop hadoop 4096 May 1 14:29 lib drwxr-xr-x 2 hadoop hadoop 4096 Apr 22 2014 plugins drwxrwxr-x 6 hadoop hadoop 4096 May 21 12:38 temp drwxr-xr-x 6 hadoop hadoop 4096 May 1 14:29 web [hadoop@master azkaban-web-2.5.0]$ web.resource.dir=/home/hadoop/app/azkaban/azkaban-web-2.5.0/web/ 修改好之后,再次启动。 本文转自大数据躺过的坑博客园博客,原文链接:http://www.cnblogs.com/zlslch/p/7124205.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

应用界面锁定这招太有用了

“锁屏不就是ctrl+alt+del吗?操作系统都支持哦!”这话说的没错,但是指的操作系统锁屏,这种锁屏一旦完成没有人能够继续使用该电脑上的软件了。也就是说,操作系统锁屏不能满足电脑传借后仍然使用需求,而在现实场景中把自己电脑借给别人临时使用是极为常见的事情。DESK倚天剑作为一个常用工具集合对于电脑临时传借过程中的数据保护要求非常高,因为DESK倚天剑中打开的终端、远程文件等等窗口中涉及大量敏感数据。好在是DESK倚天剑有个应用锁定的妙招。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册