为了让我喜欢的雪姐高兴,所以给她做了这个APP,背景都是用她男朋友的照片。
1.更换app图标
2.设置布局文件
3.添加监听(一种新方法)
4.record页面跳转
5.record页面布局
6.sign_in页面跳转
7.sign_in页面布局
8.跳转到网页
9.传递简单数据
1.更换app图标
因为这是给雪姐写的APP,默认的图标太丑,所以将它换成雪姐男朋友的照片。
在新建项目时,到如下步骤时:
选择红框中的Browse,选择你喜欢的照片即可。
在下面的Shape中可以根据自己的需要选择喜欢的形状,我一般比较喜欢选Circle。
就这样我遇到了一个棘手的问题,如何将长方形的图片裁剪成圆形。
参考一下链接https://www.zhihu.com/question/35412484
2.设置布局文件
这次的很大一个不同就是设置背景图片,当然还是选择雪姐男朋友的照片啦。
将需要的背景图片复制到drawabel文件夹内
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/background_1"
android:gravity="center_horizontal"
android:orientation="vertical" >
<TextView
android:id="@+id/textView_welcome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:text="@string/textView_welcome"
android:textColor="#FFCCCC"
android:textSize="40sp" />
<TableLayout//表格布局很好用
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="80dp"
android:gravity="center_horizontal" >
<TableRow
android:id="@+id/tableRow_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal" >
<Button
android:id="@+id/button_1"
android:layout_width="90dp"
android:layout_height="50dp"
android:text="@string/button_1" />
<Button
android:id="@+id/button_2"
android:layout_width="90dp"
android:layout_height="50dp"
android:text="@string/button_2" />
<Button
android:id="@+id/button_3"
android:layout_width="90dp"
android:layout_height="50dp"
android:text="@string/button_3" />
</TableRow>
<TableRow
android:id="@+id/tableRow_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal" >
<Button
android:id="@+id/button_4"
android:layout_width="90dp"
android:layout_height="50dp"
android:text="@string/button_4" />
<Button
android:id="@+id/button_5"
android:layout_width="90dp"
android:layout_height="50dp"
android:text="@string/button_5" />
<Button
android:id="@+id/button_6"
android:layout_width="90dp"
android:layout_height="50dp"
android:text="@string/button_6" />
</TableRow>
<TableRow
android:id="@+id/tableRow_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal" >
<Button
android:id="@+id/button_7"
android:layout_width="90dp"
android:layout_height="50dp"
android:text="@string/button_7" />
<Button
android:id="@+id/button_8"
android:layout_width="90dp"
android:layout_height="50dp"
android:text="@string/button_8" />
<Button
android:id="@+id/button_9"
android:layout_width="90dp"
android:layout_height="50dp"
android:text="@string/button_9" />
</TableRow>
<TableRow
android:id="@+id/tableRow_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal" >
<Button
android:id="@+id/button_cancel"
android:layout_width="90dp"
android:layout_height="50dp"
android:text="@string/button_cancel" />
<Button
android:id="@+id/button_0"
android:layout_width="90dp"
android:layout_height="50dp"
android:text="@string/button_0" />
<Button
android:id="@+id/button_accept"
android:layout_width="90dp"
android:layout_height="50dp"
android:text="@string/button_accept" />
</TableRow>
</TableLayout>
<Button
android:id="@+id/button_help"
android:layout_width="90dp"
android:layout_height="50dp"
android:layout_marginTop="20dp"
android:text="@string/button_help" />
</LinearLayout>
运行效果
雪姐表示很喜欢,我表示很开心。
3.添加监听(一种新方法)
在MainActivity.java中
声明变量
private Button button_1;
获得对象引用
button_1=(Button)this.findViewById(R.id.button_1);
声明用于存储点击的内容
private StringBuilder password=new StringBuilder();
注册监听器,匿名内部类
button_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
password.append("1");
}
});
一种新的添加监听的方法,要牢记。
其他button同上面一样,这里就不在多说。
4.页面跳转
这个对于我来讲一直是个难点
首先在layout下新建文件,我命名为record
该页面的布局暂且不用着急,我们首先来设置它的跳转,这样在页面布局的时候就可以随时运行到手机上查看效果。
MainActivity.java
public class MainActivity extends Activity {
//声明变量
private Button button_accept;
@Override
protected void onCreate(Bundle savedInstanceState) {
//保存Activity的状态
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获得对象引用
Button button_accept=(Button)findViewById(R.id.button_accept);
//注册监听器,匿名内部类
button_accept.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
Intent intent=new
Intent(MainActivity.this,record.class);
startActivity(intent);//抄代码的时候应该仔细,不要漏抄
}
});
}
}
在这里要新建record.class文件,跟前面新建的布局文件同名。
record.class
public class record extends Activity{
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.record);
}
}
还有一步就是要注册,千万不能忘记啊!
每创建一个新的页面,都要注册。
AndroidManifest.xml
与文件中原有的activity标签并列。
<activity
android:name="record"
android:label="@string/app_name">
</activity>
此时就可以成功跳转。
运行试一下咯
成功!!!
5.新页面的布局
record.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/backgroud_2"
android:orientation="vertical" >
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="40dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:gravity="center_horizontal" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
<TextView
android:id="@+id/textView_1"
android:layout_width="70dp"
android:layout_height="40dp"
android:layout_marginRight="15dp"
android:text="@string/textView_1"
android:textColor="#FF9999"
android:textSize="30sp" />
<EditText
android:id="@+id/EditText_1"
android:layout_width="180dp"
android:layout_height="40dp"
android:layout_marginLeft="15dp"
android:background="#FFFFCC"
android:text="@string/EditText_1" />
</TableRow>
</TableLayout>
</LinearLayout>
运行效果:
项目并未做完,期待以后的更新。
6.sign_in页面跳转
这个页面的跳转方法跟之前页面的一致,但因为对此操作不是和熟悉,所以再写一遍。
在layout下新建sign_in.xml
MainActivity.java
public class MainActivity extends Activity {
//声明变量
private Button button_register;
@Override
protected void onCreate(Bundle savedInstanceState) {
//保存Activity的状态
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获得对象引用
Button button_register=(Button)findViewById(R.id.button_register);
//注册监听器,匿名内部类
button_register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
Intent intent=new
Intent(MainActivity.this,sign_in.class);
startActivity(intent);//抄代码的时候应该仔细,不要漏抄
}
});
}
}
这里要新建sign_in.class
sign_in.class
public class sign_in extends Activity{
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.sign_in);
}
}
还有就是特别容易忘记特别重要的注册!!!!
AndroidManifest.xml
与文件中原有的activity标签并列。
<activity
android:name="sign_in"
android:label="@string/app_name">
</activity>
此时,便可以成功跳转。
7.sign_in页面布局
这个布局较难,包含了多种类型的标签,先看一下最终效果。
下面来看一下sign_in.xml
用户注册的布局:
<TextView
android:id="@+id/textView_userRegister"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:gravity="center"
android:padding="5dp"
android:textSize="36sp"
android:text="@string/textView_userRegister" />
用户名和密码的布局:
<RelativeLayout//相对布局
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp">
<TextView
android:id="@+id/textView_user"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/EditText_user"//与右侧框的中垂线对齐
android:textSize="25sp"
android:textColor="#FFCCCC"
android:text="@string/textView_user" />
<EditText
android:id="@+id/EditText_user"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/textView_user"//在用户名的右侧
android:hint="请输入用户名"//提示信息
android:textSize="25sp"
android:layout_marginTop="20dp"
android:text="@string/EditText_user" />
<TextView
android:id="@+id/textView_psw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/EditText_psw"//与右侧框的中垂线对其
android:layout_below="@+id/EditText_user"//在EditText_user的下方!!
android:textSize="25sp"
android:textColor="#FFCCCC"
android:text="@string/textView_psw" />
<EditText
android:id="@+id/EditText_psw"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/textView_psw"//在密码的右侧
android:layout_alignLeft="@+id/EditText_user"//与EditText_user的左侧对其
android:layout_below="@+id/EditText_user"//在EditText_user的下方
android:hint="请输入密码"//提示信息
android:textSize="25sp"
android:layout_marginTop="20dp"
android:inputType="textPassword"//隐藏密码
android:text="@string/EditText_psw" />
</RelativeLayout>
性别布局:
<LinearLayout//水平布局
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"//左边距
android:layout_marginRight="20dp"
android:layout_marginTop="20dp">
<TextView
android:id="@+id/textView_sex"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25sp"
android:textColor="#FFCCCC"
android:text="@string/textView_sex" />
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >//水平显示
<RadioButton//单选按钮
android:id="@+id/button_man"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"//所占权重
android:textSize="25sp"
android:text="@string/button_man"/>
<RadioButton
android:id="@+id/button_woman"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="25sp"
android:text="@string/button_woman"/>
</RadioGroup>
</LinearLayout>
这个按钮是第一次使用,以后应多加使用进一步熟悉。
爱好的布局:
<LinearLayout//水平布局
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp" >
<TextView
android:id="@+id/textView_like"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25sp"
android:textColor="#FFCCCC"
android:text="@string/textView_like" />
<CheckBox//复选框
android:id="@+id/checkBox_ball"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="25sp"
android:text="@string/checkBox_ball"/>
<CheckBox
android:id="@+id/checkBox_sing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="25sp"
android:text="@string/checkBox_sing"/>
<CheckBox
android:id="@+id/checkBox_dance"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:textSize="25sp"
android:text="@string/checkBox_dance"/>
</LinearLayout>
这个按钮也是第一次使用。
登录的布局:
<Button
android:id="@+id/button_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:textSize="25sp"
android:text="@string/button_login"/>
8.跳转到网页
点击按钮0后跳转到指定网页。
该操作与页面跳转很相似,下面来看具体的代码。
在layout下新建一个布局页面new_main.xml
MainActivity.java
public class MainActivity extends Activity {
//声明变量
private Button button_0;
@Override
protected void onCreate(Bundle savedInstanceState) {
//保存Activity的状态
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获得对象引用
button_0=(Button)findViewById(R.id.button_0);
//注册监听器,匿名内部类
button_accept.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
Intent intent=new
Intent(Intent.ACTION_VIEW,Uri.parse("http://jikexueyuan.com"));
startActivity(intent);//抄代码的时候应该仔细,不要漏抄
}
});
}
}
在这里不用新建new_main.xml文件
还有就是特别容易忘记的注册。
<activity
android:name="new_main"
android:label="@string/app_name">
</activity>
此时运行就可以成功跳转到指定网页了。
9.传递简单数据
Activity跳转时如何传递简单数据。
在layout下新建hello.xml
放入一个TextView,不显示任何内容
<TextView
android:id="@+id/textView_jump"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/textView_jump" />
MainActivity.java
public class MainActivity extends Activity {
//声明变量
private Button button_1;
@Override
protected void onCreate(Bundle savedInstanceState) {
//保存Activity的状态
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获得对象引用
button_1=(Button)this.findViewById(R.id.button_1);
//注册监听器,匿名内部类
button_1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO Auto-generated method stub
Intent intent=new Intent(MainActivity.this,hello.class);
intent.putExtra("data", "Hello jikexueyuan");
startActivity(intent);
}
});
}
}
在这里要新建hello.java
public class hello extends Activity{
private TextView textView_jump;
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.hello);
textView_jump=(TextView)findViewById(R.id.textView_jump);
Intent intent=getIntent();
textView_jump.setText(intent.getStringExtra("data"));
}
}
AndroidManifest.xml
<activity
android:name="hello"
android:label="@string/app_name">
</activity>
运行效果:
- 大小: 57 KB
- 大小: 2.6 KB
- 大小: 2.7 KB
- 大小: 17.4 KB
- 大小: 143.6 KB
- 大小: 154.8 KB
- 大小: 163.7 KB
- 大小: 9.2 KB
分享到:
相关推荐
Java版记事本是一款完全由Java编程语言编写的文本编辑器,主要利用了Java Swing库来构建用户界面。Swing是Java的一个图形用户界面(GUI)工具包,它为开发者提供了丰富的组件,使得创建桌面应用程序变得更为简单。这个...
"Asp.net C# 创建记事本,并给记事本输入文字"这个项目就是这样的一个实例,它展示了如何通过C#调用Windows API来创建一个记事本程序,并向其中写入文本。 首先,让我们了解什么是Windows API。Windows API是微软为...
在C++编程中,创建、打开并写入记事本文件是一种常见的操作,尤其是在学习文件I/O时。这里我们将详细探讨如何使用C++实现这个功能,并通过`system()`函数调用操作系统命令来显示记事本,查看写入的数据。首先,我们...
在Android平台上开发一款记事本应用,涉及到许多关键知识点,这些知识点构成了移动应用开发的基础。以下将详细解析这些核心概念: 1. **Android操作系统**:Android是Google开发的一款开源操作系统,广泛应用于智能...
在这个“易语言打开记事本并写入内容”的主题中,我们将探讨如何利用易语言来实现这样的功能,包括打开系统自带的记事本程序并向其中写入特定的内容。 首先,我们要理解易语言中的几个关键概念。`取得窗口_`是...
在本文中,我们将深入探讨如何使用QT框架来创建一个简单的基于Windows的记事本应用程序。QT是一个跨平台的C++库,它提供了丰富的图形用户界面(GUI)工具和功能,使得开发人员能够轻松构建各种类型的应用程序,包括...
**MFC简单记事本程序**是基于Microsoft Foundation Class (MFC)库开发的一个基础文本编辑应用程序,适用于学习和理解MFC编程。MFC是微软为Windows平台提供的一套C++类库,它封装了Windows API,使得开发者可以更方便...
《密码记事本:安全存储的秘密武器》 在数字化时代,个人信息的安全日益受到重视,而密码作为保护我们数字资产的第一道防线,其管理和保存显得尤为重要。"密码记事本"是一款专为此目的设计的汉化版软件,它将传统的...
【标题】"JAVA编写的日历记事本 实现日历及记事本功能" 描述了一款基于Java编程语言开发的应用程序,该程序集成了日历和记事本两大功能。在Java中,这样的应用通常涉及到GUI(图形用户界面)设计、事件处理以及数据...
【标题】"java记事本 源代码"所涉及的知识点主要集中在Java编程语言、图形用户界面(GUI)设计以及文件操作上。这个项目利用Java的Swing库来构建一个类似于Windows记事本的应用程序,它实现了文本编辑的基础功能。 ...
【标题】"记事本编写的贪吃蛇"是一款基于文本界面的小游戏,它通过简单的命令行输出在记事本中实现。贪吃蛇游戏的基本原理是控制一个由字符表示的蛇在有限的网格内移动,吃到食物后增长,同时避免撞到自身或边界。 ...
【标题】"漂亮的完整记事本 功能齐全 源码"所指的是一款设计美观且功能丰富的记事本软件,这款软件不仅在界面设计上追求美观,而且提供了多种实用的功能,满足用户日常的文本编辑需求。作为一个.NET程序,它可以被...
在Android平台上,开发一个记事本程序涉及到许多关键知识点,这些知识点主要涵盖用户界面(UI)设计、数据存储以及应用程序的逻辑结构。本项目“Android记事本程序代码”提供了一个学习和实践这些技能的机会。 首先...
JAVA手机记事本,是很好用的JAVA手机记事本,VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV。经验证,金立手机L18可用。JAVA手机记事本,是很好用的JAVA手机记事本,...
记事本程序是计算机操作系统中常见的一种简单文本编辑器,它允许用户创建、查看和编辑纯文本文件。在Windows操作系统中,内置的记事本应用(Notepad)因其简洁的界面和基本的文本处理功能而广受欢迎。这个压缩包文件...
【Qt版简易记事本】是一款基于Qt框架开发的简单文本编辑器,主要适用于学习Qt编程的初学者。Qt是一个跨平台的C++图形用户界面应用程序开发框架,它提供了丰富的API和工具,使得开发者能够在Windows、Linux、Mac OS等...
### 右键添加新建记事本 在日常工作中,我们经常需要快速创建文本文件来记录信息或进行简单编辑。在Windows系统中,默认情况下,我们可以通过右键菜单中的“新建”选项来快速创建记事本文件(.txt)。然而,有时...
标题中的"C#记事本(模仿系统记事本写的)"是指使用C#编程语言开发的一个文本编辑器程序,它的设计灵感来源于操作系统自带的记事本应用程序。开发者试图通过这个项目来实现与系统记事本相同的功能,以供初学者学习和...
"易语言打开记事本并写入内容源码"是一个基础的程序示例,它展示了如何使用易语言与操作系统进行交互,控制外部应用程序,如记事本,并向其写入数据。下面我们将详细讨论这个知识点。 首先,易语言提供了丰富的系统...
标题 "一个用VB写的类似Windows的记事本" 暗示了这是一个使用Visual Basic (VB) 开发的文本编辑器程序,它模仿了Windows操作系统自带的记事本应用程序,并在设计和功能上有所增强。VB是Microsoft开发的一种面向对象...