Android入门项目(校园软件)
Posted JackySei
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android入门项目(校园软件)相关的知识,希望对你有一定的参考价值。
写在前面
该项目是一个android项目,非常适合新手,基本运用了所有的常见组件和布局,小说部分还用到了java爬虫技术,无论是学习还是装x都十分合适。还有完整的文档帮你理解代码,从欢迎界面入手循序渐进的完成整个项目的学习。
适用范围:
1.用于完成学校Android作业的朋友。
2.需要一个Android项目来学习技术的朋友。
3.想要写一个社区之类软件但是自己不想写界面的朋友,可以再此之上继续自己添加内容。
粗略把结构分成了这样
目录结构
首先自定义一个MyApplication继承Application,完成一个获取context的方法,方便后面在需要用的地方可以直接使用MyApplication.getContext()方法直接获取context。(虽然我每次都忘了用)
有的地方不建议将Context定义成静态的,具体原因我还没有深入了解,这个方法是真的很方便。
public class MyApplication extends Application
private static Context context;
@Override
public void onCreate()
super.onCreate();
context = getApplicationContext();
public static Context getContext()
return context;
再开始第一个页面时,在配置文件中values中的style里把actionBar改为NoActionBar。设置为隐藏actionbar。
欢迎界面
设置在应用开始后先进入一个欢迎页面在进入main页面
public class WelcomeActivity extends AppCompatActivity
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_weclome);
Timer timer=new Timer();
timer.schedule(new TimerTask()
@Override
public void run()
toMain();
,2000);
private void toMain()
startActivity(new Intent(WelcomeActivity.this,MainActivity.class));
finish();
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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:fitsSystemWindows="true">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:drawableTop="@mipmap/iswust"
android:gravity="center"
android:text="爱西科生活"
android:textColor="#000"
android:textStyle="bold"
android:textSize="30sp"
/>
</FrameLayout>
这样欢迎页面就算完成。
登录界面
然后就是开始第一个界面吧,先是登录界面的布局。
activity_main.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:fitsSystemWindows="true"
android:orientation="vertical"
>
<ImageView
android:src="@mipmap/iswust"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<EditText
android:padding="8dp"
android:layout_marginTop="30dp"
android:layout_width="match_parent"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_height="wrap_content"
android:hint="手机号"
android:drawableLeft="@mipmap/ic_login_account_icon"
android:layout_gravity="center_horizontal"
android:background="@drawable/bac_1"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="15dp">
<EditText
android:layout_width="0dp"
android:background="@drawable/bac_1"
android:padding="8dp"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/ic_login_code_icon"
android:layout_weight="3"
android:layout_marginLeft="30dp"
android:hint="验证码"
/>
<Button
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="50dp"
android:text="获取验证码"
android:layout_marginRight="30dp"
android:textColor="@android:color/white"
android:background="@drawable/bac_2"
android:layout_marginLeft="15dp"/>
</LinearLayout>
<Button
android:id="@+id/btn_login1"
android:layout_width="300dp"
android:layout_height="50dp"
android:layout_marginTop="20dp"
android:textSize="20sp"
android:textColor="@android:color/white"
android:background="@drawable/bac_2"
android:layout_gravity="center_horizontal"
android:text="登录/注册"/>
<TextView
android:id="@+id/in"
android:layout_marginLeft="50dp"
android:layout_marginTop="10dp"
android:padding="8dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="使用旧版登录接口"
android:clickable="true"
android:textColor="#5382D2"/>
<TextView
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:text="——————第三方登录——————"/>
<LinearLayout
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableTop="@mipmap/wechat"
android:gravity="center"
android:text="微信" />
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:drawableTop="@mipmap/qq"
android:gravity="center"
android:text="QQ"/>
</LinearLayout>
<LinearLayout
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center"
>
<TextView
android:text="登录即代表同意"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="《服务协议》"
android:textColor="#7D9BD7"/>
</LinearLayout>
</LinearLayout>
用到的图片也是在网络中获取的,有的是学长发给我的。所以大家可以随意添加。
对按钮的自定义修饰也是因人而异开心就好。
虽然已经有很多人提过,但还是推荐一下这个图标网站 -->点这里https://www.iconfont.cn/
当时为了方便,这里并没有把用到的文本在strings中定义,严格来讲这是不规范的,大家看看就好。
效果如图
出于模仿的目的,很多只实现了界面,像qq,微信这些功还没办法实现,点击按钮会产生一些效果,真正的入口也就在使用旧版登录接口那里。
public class MainActivity extends AppCompatActivity
private TextView textView;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=findViewById(R.id.btn_login1);
textView=findViewById(R.id.in);
textView.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
Intent intent=new Intent(MainActivity.this,LoginActivity.class);
startActivity(intent);
);
button.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
Toast.makeText(MyApplication.getContext(),"请使用旧版登录接口",Toast.LENGTH_SHORT).show();
);
为了简单,可能还是不够规范。
当时为了熟悉布局就写了很多这种页面练手。
接下来就跳转到旧版的登录页面了和上面的界面大同小异。同理如下
activity_login
<?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:fitsSystemWindows="true"
android:background="@drawable/background_1"
android:orientation="vertical"
>
<ImageView
android:src="@mipmap/iswust"
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="爱西科生活"
android:textSize="35sp"
android:textStyle="bold"
android:textColor="#000"
android:layout_gravity="center"
/>
<EditText
android:id="@+id/username"
android:padding="8dp"
android:layout_margin="30dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="学号/工号"
android:drawableLeft="@mipmap/ic_login_account_icon"
android:background="@drawable/bac_1"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:padding="8dp"
android:background="@drawable/bac_1"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:layout_height="wrap_content"
android:drawableLeft="@mipmap/ic_login_code_icon"
android:inputType="textPassword"
android:hint="i西科密码"
/>
</LinearLayout>
<Button
android:id="@+id/btn_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginRight="30dp"
android:layout_marginLeft="30dp"
android:textSize="20sp"
android:textColor="@android:color/white"
android:background="@drawable/bac_2"
android:layout_gravity="center_horizontal"
android:text="登录"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_register"
android:layout_marginTop="10dp"
android:padding="8dp"
android:layout_width="0dp"
android:layout_weight="1"
android:textStyle="bold"
android:gravity="center"
android:layout_height="wrap_content"
android:text="用户注册"
android:clickable="true"
android:textColor="#5382D2"/>
<TextView
android:layout_marginTop="10dp"
android:padding="8dp"
android:layout_width="0dp"
android:textStyle="bold"
android:gravity="center"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="忘记密码"
android:textColor="#5382D2"/>
</LinearLayout>
<TextView
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:textStyle="bold"
android:textColor="#ffff00"
android:text="——————第三方登录——————"/>
<LinearLayout
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textStyle="bold"
android:drawableTop="@mipmap/wechat"
android:gravity="center"
android:text="微信" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:drawableTop="@mipmap/qq"
android:gravity="center"
android:textStyle="bold"
android:text="QQ"/>
</LinearLayout>
<LinearLayout
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal">
<TextView
android:text="登录即代表同意"
android:textColor="#ffff00"
android:textStyle="bold"
android:layout_height="wrap_content"
android:layout_width="wrap_content" />
<TextView
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textStyle="bold"
android:text="《服务协议》"
android:textColor="#ffff00"
/>
</LinearLayout>
</LinearLayout>
图片资源文件任意。
public class LoginActivity extends AppCompatActivity
private EditText username;
private EditText password;
private Button login;
private TextView register;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
findViews();
private void findViews()
username=(EditText) findViewById(R.id.username);
password=(EditText) findViewById(R.id.password);
login=(Button) findViewById(R.id.btn_login);
register=(TextView) findViewById(R.id.tv_register);
login.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
String name=username.getText().toString();
System.out.println(name);
String pass=password.getText().toString();
System.out.println(pass);
UserService userService以上是关于Android入门项目(校园软件)的主要内容,如果未能解决你的问题,请参考以下文章
java计算机毕业设计基于安卓Android的校园财务流水系统APP
java计算机毕业设计基于安卓Android的校园流浪猫收养app