`
土豆-.-
  • 浏览: 1402 次
社区版块
存档分类
最新评论

android学习第二天

 
阅读更多

今天的主要任务是实现Android端的画板功能,为了丰富任务的内容,我打算模拟游戏“你画我猜”的模式进行开发。

首先是登录界面,和第一天所开发的界面一样,填好账号密码,选择游戏区服后进行登录,虽然我没有在这里进行账号密码的验证,但是为了接下来的UI可以有更逼真的游戏效果,所以在登录前先填好所有信息,下面是登录界面:



  

登录界面主要就是账号密码的录入和登录的activity跳转,这里就不在贴代码了

 

接下来是登陆后的界面,这个界面是玩家输入答案和提示信息的地方,就如“你画我猜”一样,首先是电脑出题然后在让一个玩家画画,另一个玩家再根据提示信息进行猜解。不同的是,这里的答案和提示信息都要玩家手动输入,下面是游戏的界面

 



 

这个界面也比较简单,后台的java代码就是简单的定位各个组件和一些传值,这里也不贴代码了。

 

接下来是整个游戏的重点部分,就是画图的模块。界面由这几个部分构成,画布,提示信息,颜色的选择器,答案输入框,输入的历史记录,计时器还有提交按键。主要的功能是这样的,首先是已知答案的玩家根据答案进行绘图,另外一个玩家根据给出的提示信息和图样在给定的时间内猜出答案,当答案正确时会有弹框提示,否则答案将被放到答题的历史记录中,当时间到了玩家还没能猜出答案,系统也会弹框提示并给出正确的答案,下面是游戏开始的部分

 

答案输入错误,答案归入历史记录,请继续作答!

 为了有更好的游戏体验,我在答案的前面加上了当前账户的昵称,这样是不是效果更佳!这就是为什么要输入账号的原因

 

 

时间结束没能猜出答案,弹框提醒,按下确认键回到输入答案的界面

 



 

点击确认键回到输入答案的界面



 

 

当输入正确答案时,弹框提醒,点击确认回到输入答案的界面

 

 



 

 

下面是绘画界面的xml,都是一些标准的组件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".Play" >

    <com.example.huaban.paintview
        android:id="@+id/paintview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/paintview"
        android:layout_alignTop="@+id/paintview"
        android:layout_marginLeft="104dp"
        android:layout_marginTop="42dp"
       />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignRight="@+id/paintview"
        android:text="@string/tijiao" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/editText1"
        android:layout_alignLeft="@+id/paintview"
        android:layout_marginBottom="17dp"
     />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_above="@+id/button1"
        android:layout_alignParentRight="true"
        android:layout_marginBottom="18dp"
        android:ems="10" />

    <Spinner
        android:id="@+id/color"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/paintview"
        android:layout_alignParentLeft="true" 
        android:entries="@array/color"
         />

</RelativeLayout>

   java实现的代码,里面有注释,这里不再说明

 

package com.example.huaban;

import java.util.ArrayList;
import java.util.List;

import android.os.Bundle;
import android.os.CountDownTimer;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Point;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.AdapterView.OnItemSelectedListener;

public class Play extends Activity {
      private TextView tishi_view;
      private String daan;
      private EditText shuru;
      private TextView ed;
      private Button button;
      private Spinner spinner;
      private String color1;
      
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_play);
		
		//新建一个Intent,用于接受从上一个Activity传过来的值
		Intent intent=getIntent();
		daan=intent.getStringExtra("question");
		
		//定位组件,读取与写入
		tishi_view=(TextView)findViewById(R.id.textView1);
		shuru=(EditText)findViewById(R.id.editText1);
		ed=(TextView)findViewById(R.id.textView2);
		button=(Button)findViewById(R.id.button1);
		spinner=(Spinner)findViewById(R.id.color);
		
		
		//定时器的实现
		CountDownTimer cdt = new CountDownTimer(100000, 100) {  
		    @Override  
		    public void onTick(long millisUntilFinished) {  
		    	Intent intent=getIntent();
		    	//将倒计时显示在界面上
		    	tishi_view.setText("提示:"+intent.getStringExtra("tishi")+"  "+"倒计时:"+millisUntilFinished + "");  
		    }  
		    @Override  
		    public void onFinish() {  
		    	//计时结束后的弹出框
		    	AlertDialog.Builder builder  = new Builder(Play.this);
				 builder.setTitle("时间到" ) ;
				 builder.setMessage("正确答案:"+ daan) ;
				 builder.setPositiveButton("是" , new DialogInterface.OnClickListener() {
			            @Override
			            public void onClick(DialogInterface dialog, int which) {
			            	Intent intent=new Intent();
			        		intent.setClass(Play.this, Question.class);
			        		Play.this.startActivity(intent);
			            }});
				 builder.show(); 
		    }  
		}; 
		//开始计时
		cdt.start();
		//tishi_view.setText("提示:"+intent.getStringExtra("tishi"));
		//颜色选择器的定位
		spinner.setOnItemSelectedListener(new OnItemSelectedListener() {  
			  
		    @Override  
		    public void onItemSelected(AdapterView<?> parent, View view,  
		            int position, long id) {  
		          
		        //拿到被选择项的值  
		        color1 = (String) spinner.getSelectedItem();  
		        if(color1.equals("红色"))
					paintview.color1=-1001;
				
				else if(color1.equals("黄色"))
					paintview.color1=-1003;
				else if(color1.equals("绿色"))
					paintview.color1=-1004;
			
				else if(color1.equals("蓝色"))
					paintview.color1=-1006;
				else if(color1.equals("紫色"))
					paintview.color1=-1007;
			
				else
				paintview.color1=1000;
			
		        }
		    @Override  
		    public void onNothingSelected(AdapterView<?> parent) {  
		        // TODO Auto-generated method stub  
		          
		    }  });
		//提交正确答案的提示
		button.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View v)
			{Intent intent=getIntent();
				ed.setText(ed.getText().toString()+"\n"+intent.getStringExtra("zhanghu")+":"+shuru.getText().toString());
				if(daan.equals(shuru.getText().toString())){
					
				AlertDialog.Builder builder  = new Builder(Play.this);
				 builder.setTitle("恭喜" ) ;
				 builder.setMessage("答案正确" ) ;
				 builder.setPositiveButton("是" , new DialogInterface.OnClickListener() {
			            @Override
			            public void onClick(DialogInterface dialog, int which) {
			            	Intent intent=new Intent();
			        		intent.setClass(Play.this, Question.class);
			        		Play.this.startActivity(intent);
			            }});
				 builder.show(); 
				
				 }
			}
			
		});
		
	}

	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.play, menu);
		return true;
	}

}

 

 

  • 大小: 34.4 KB
  • 大小: 17 KB
  • 大小: 23.2 KB
  • 大小: 25.1 KB
  • 大小: 14.4 KB
  • 大小: 25.1 KB
分享到:
评论

相关推荐

    Android 学习第二天

    在“Android 学习第二天”这个主题中,我们主要探讨的是Android开发的基础知识,特别是针对初学者。在学习过程中,源码分析和工具使用是非常重要的组成部分。以下是对这些知识点的详细说明: 一、Android基础知识 ...

    传智播客_Andorid_Android基础视频video_第二天修

    在第二天的学习内容中,我们可以推测会涵盖一些Android开发的基础概念和关键知识点。 1. **Android简介**:Android是Google主导的开源操作系统,广泛应用于智能手机和平板电脑。它提供了一个全面的开发环境,让...

    第二天android项目 基本空间的用法

    在“第二天android项目 基本空间的用法”中,我们将会探讨如何有效地利用各种UI元素,如按钮(Button)和菜单(Menu),来创建交互式和功能丰富的应用。 首先,Android中的基本空间主要指的是布局(Layout),它是...

    学习android的小程序

    从提供的标签"几个android的小程序"以及压缩包内的文件名称,我们可以推断这是一系列逐步进阶的学习材料,可能包括了从第一天到第二天的学习内容。 首先,让我们来看看`Android_day01`的相关内容。在第一天的学习中...

    3G手机Android应用开发第二天代码.rar

    本压缩包文件"3G手机Android应用开发第二天代码.rar"可能包含了一天课程的学习代码示例,旨在帮助初学者深入理解Android应用的构建过程。 Android应用开发主要基于Java语言,使用Android SDK(Software Development...

    android5天课程

    【第二天:UI组件与布局管理】 在"day2"(可能是day18)的课程中,将深入研究Android用户界面(UI)组件,如TextView、Button、EditText等,以及如何使用布局管理器(如LinearLayout、RelativeLayout和...

    android学习与开发项目笔记.zip

    "android第二天笔记"可能会深入讲解Android的布局管理,如LinearLayout、RelativeLayout和ConstraintLayout,以及如何使用XML来设计用户界面。同时,你还会接触到资源管理,如字符串、颜色、图片资源的使用,以及...

    传智播客_Andorid_20天精通Android开发视频_第2天视频

    在“传智播客_Andorid_20天精通Android开发视频_第2天视频”这一资源中,我们可以深入学习...这个压缩包中的第二天视频,会是这段学习旅程中承前启后的一环,帮助你从入门到深入理解Android开发的关键概念和技术。

    android黎活明8天讲解

    第二天的讲解重点可能是深入Android组件,特别是Activity和Intent。Activity是Android应用中的一个视觉工作单元,而Intent则用于在组件间传递消息。学员将了解如何启动Activity,处理生命周期方法,以及使用Intent...

    ArcGIS for android 访问天地图

    6. 离线地图:如果需要离线使用天地图,可以考虑使用ArcGIS的缓存机制或第三方库实现地图切片的下载和存储。 以上是关于使用ArcGIS for Android访问天地图的基本知识和可能遇到的问题。通过学习和实践,你可以创建...

    Android 精确计算农历二十四节气-IT计算机-毕业设计.zip

    12. **应用发布**:最后,学习如何打包APK,设置应用权限,通过Google Play或其他第三方市场发布应用。 通过以上知识点的学习和实践,不仅能完成毕业设计,还能为将来进入Android开发领域打下坚实的基础。这个项目...

    传智播客_Andorid_20天精通Android开发视频_第3天视频

    在第一天和第二天的课程中,你可能已经接触过Hello World程序,第三天可能会更进一步,通过创建一个简单的Android应用来实践这些概念。这可能包括布局设计,使用XML文件描述用户界面,以及在Java代码中控制UI元素。...

    Android基础-02

    13. **第二日学习内容**:根据"第二天.md"文件名推测,这部分可能详细介绍了上述的一些概念或进行了更深入的实践操作,可能包括创建新项目、运行第一个应用、理解Activity生命周期、使用布局设计界面等。 14. **无...

    传智播客_Andorid_Android基础视频video_第三天修

    在Android开发中,第一天和第二天的学习可能已经涵盖了环境搭建、基本布局和控件的使用等内容。而“第三天修”的课程,则更进一步,深入探讨更多关键知识点: 1. **Activity生命周期**:Activity是Android应用的...

    不错的Android hal培训课件

    在“day0220100329”这个文件名中,我们可以推测这是课程的第二天内容,可能涵盖了更深入的HAL开发实践或者特定模块的实例分析。可能包括了如何处理中断、线程同步、错误处理等方面的知识。 此外,2010年3月的培训...

    android基本控件练习

    - **官方文档**:深入学习Android官方文档中关于UI控件的部分。 - **实战项目**:尝试在真实的项目中应用这些控件,加深理解。 - **社区资源**:参与社区讨论,了解最新的开发技巧和最佳实践。 通过上述介绍,我们...

Global site tag (gtag.js) - Google Analytics