zoukankan      html  css  js  c++  java
  • 软件开发记录07

    今天我实现了欢迎页面和登录页面的页面布局和功能。

    (1)欢迎页面布局

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        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"
        
        >
        
         <ImageView
            android:id="@+id/ivlogin"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_centerVertical="true"
            android:src="@drawable/splash_default" />
         
       
         <Button 
             android:id="@+id/btn_begin"
             android:layout_width="wrap_content"
            android:layout_height="46dp"
            android:layout_alignParentBottom="true"
            android:layout_centerHorizontal="true"
            android:layout_marginBottom="30dp"
            android:background="@drawable/jiantou2"
            android:text="@string/login_btn_begin"
            
             /> 
    </RelativeLayout>

    (2)欢迎页面的功能实现

    package com.example.personmoney;
    
    import java.util.Calendar;
    
    import javax.security.auth.PrivateCredentialPermission;
    
    import com.example.feigou.activity.MainActivity;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.text.format.Time;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.animation.AlphaAnimation;
    import android.view.animation.Animation;
    import android.widget.Button;
    import android.widget.ImageView;
    
    
    public class LoginActivity extends Activity {
        
        private ImageView loginImage;
        private Button loginBtn;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
        
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            initview();
            
        }
        
        public void initview() {
            loginImage=(ImageView) findViewById(R.id.ivlogin);
            loginBtn=(Button) findViewById(R.id.btn_begin);
            
            //简便动画效果
            Animation alphaAnimation=new AlphaAnimation(0.1f, 1.0f);
            alphaAnimation.setDuration(3000);//设置动画持续时间
            alphaAnimation.setFillAfter(true);//设置动画结束后保持当前的位置
            //将动画效果添加到图片中
            loginImage.startAnimation(alphaAnimation);
            
            
            
            loginBtn.setOnClickListener(new OnClickListener(){
                
              @Override
                public void onClick(View v) {
                    Intent intent=new Intent();
                    intent.setClass(LoginActivity.this, LoginActivity2.class);
                    startActivity(intent);
                    LoginActivity.this.finish();
                    
                }
            });
            
        }
        
    
    }

    (3)登录页面的页面布局

    <LinearLayout 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:orientation="vertical"
        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="com.example.login.MainActivity" >
    
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_gravity="center_horizontal"
            android:src="@drawable/xiaohu" />
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
    
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_gravity="center_horizontal"
                android:src="@drawable/pingguo" />
    
            <EditText
                android:id="@+id/et_username"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="用户名" />
        </LinearLayout>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >
    
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_centerVertical="true"
                android:layout_gravity="center_horizontal"
                android:src="@drawable/pingguo" />
    
            <EditText
                android:id="@+id/et_userpassword"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="请输入密码"
                android:password="true" />
        </LinearLayout>
    
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginTop="20dp" >
    
            <CheckBox
                android:id="@+id/cb_ischeck"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="记住用户名密码" />
    
            <Button
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:onClick="login"
                android:text="登录" />
        </RelativeLayout>
    
    </LinearLayout>

    (4)登录页面的功能实现

    package com.example.personmoney;
    
    import java.util.Map;
    
    import com.example.feigou.activity.MainActivity;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.content.SharedPreferences.Editor;
    import android.os.Bundle;
    import android.text.TextUtils;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.view.View;
    import android.widget.CheckBox;
    import android.widget.EditText;
    import android.widget.Toast;
    
    
    
    
    public class LoginActivity2 extends Activity {
    
        private EditText et_name;
        private EditText et_userpassword;
        private CheckBox cb_ischeck;
    
        
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_login2);
            
            
            //1.找到我们关心的控件
            
             et_name=(EditText)findViewById(R.id.et_username);
            et_userpassword=(EditText)findViewById(R.id.et_userpassword);
            cb_ischeck=(CheckBox)findViewById(R.id.cb_ischeck);
            
            //在config.xml文件中把我们关心的数据取出来 然后显示在Edittext控件上
            //使用SharedPreferences 去保存数据  那到sp的实例
            SharedPreferences sPreferences=getSharedPreferences("config", 0);
            String name=sPreferences.getString("name", "");
            String password=sPreferences.getString("pwd", "");
            boolean status=sPreferences.getBoolean("status", false);
            
            et_name.setText(name);
            et_userpassword.setText(password);
            cb_ischeck.setChecked(status);
        
        }
        
        
        //写点击事件
        public void login(View v) {
            
            
            //2.1获取用户名和密码SS
            
            String name=et_name.getText().toString().trim();
            String password=et_userpassword.getText().toString().trim();
            System.out.println("cb_ischeck:"+cb_ischeck.isChecked());
            //2.2判断name和password是否为空
            if(TextUtils.isEmpty(name)||TextUtils.isEmpty(password)) {
                Toast.makeText(LoginActivity2.this, "用户名和密码不能为空", 1).show();
            }
            else {
                //进行登录的逻辑
                Intent intent=new Intent();
                intent.setClass(LoginActivity2.this, MainActivity.class);
                startActivity(intent);
                if(cb_ischeck.isChecked()) {
                    
                    
                    //使用SharedPreferences 去保存数据  那到sp的实例
                    SharedPreferences sPreferences=getSharedPreferences("config", 0);
                    //获取sp的编辑器
                    Editor editor=sPreferences.edit();
                    editor.putString("name", name);
                    editor.putString("pwd", password);
                    editor.putBoolean("status", true);
                    //提交
                    editor.commit();
                
                }
                else {
                    Toast.makeText(LoginActivity2.this, "请勾选'记住用户名密码'", 1).show();
                }
            }
        }
    
        
    }

    (5)软件设置的功能实现

    package com.example.feigou.test;
    
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    import com.example.personmoney.R;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.drawable.BitmapDrawable;
    import android.graphics.drawable.Drawable;
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.Environment;
    import android.provider.MediaStore;
    import android.provider.MediaStore.Audio.Media;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    
    public class SettingActivity extends Activity implements OnClickListener {
        private ImageView headImage;
        private TextView tvNickName;
        private TextView tvWeiXinNum;
        private Button setting_photo;
        
        private ImageView ivHead;//头像显示
        private Button btnTakephoto;//拍照
        private Button btnphoto;//相册
        private Bitmap head;//头像
        private static String path="storage/emulated/DCIM/Camera/";//存放照片路径
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            /**     
                 * 方法的一句话概述
                 * 方法详述(简单方法可不必详述)
                 * @param s 说明参数含义
                 * @return 说明返回值含义
                 * @throws IOException 说明发生此异常的条件
                 * @throws NullPointerException 说明发生此异常的条件
                 */
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_setting);
            init();
        }
    
        public void init() {
            setting_photo = (Button) findViewById(R.id.setting_photo);
            setting_photo.setOnClickListener(this);
            headImage = (ImageView) findViewById(R.id.main_me_headphoto);
            
            
            //findViewById(R.id.main_me_setting).setOnClickListener(this);
            findViewById(R.id.main_me_expression).setOnClickListener(this);// 表情
            findViewById(R.id.main_me_collect).setOnClickListener(this);// 收藏
            
            //设置头像
            btnphoto=(Button) findViewById(R.id.btn_photo);
            btnTakephoto=(Button) findViewById(R.id.btn_takephoto);
            ivHead=(ImageView) findViewById(R.id.main_me_headphoto);
            //从Sd卡中找头像,转换成Bitmap
            Bitmap bt=BitmapFactory.decodeFile(path+"head.jpg");
            if(bt!=null) {
                Drawable drawable=new BitmapDrawable(bt);//转换成drawerable
                ivHead.setImageDrawable(drawable);
            }else {//如果没有照片再从服务器取头像,存储取回来的头像
                
            }
             
        }
    
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            switch (v.getId()) {
            case R.id.setting_photo: {
                Toast.makeText(this, "进入圖片頁面,暂时还没实现",
                        Toast.LENGTH_SHORT).show();
                break;
    
            }
            case R.id.main_me_collect: {
                Toast.makeText(this, "进入收藏界面,暂时还没实现",
                        Toast.LENGTH_SHORT).show();
                break;
            }
            case R.id.main_me_expression: {
                Toast.makeText(this, "进入表情界面,暂时还没实现",
                        Toast.LENGTH_SHORT).show();
                break;
            }
            
            case R.id.btn_photo:{//从相册里取照片
               Intent intent1=new Intent(Intent.ACTION_PICK,null);
               intent1.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "imag/*");
               startActivityForResult(intent1, 1);
               break;
            }
            case R.id.btn_takephoto:{//从相册里取照片
                   Intent intent2=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
                  intent2.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(new File(Environment.getExternalStorageDirectory(),"head.jpg")));
                   startActivityForResult(intent2, 2);
                   break;
                }
            
            /*case R.id.main_me_setting: {
                //可以修改自己的頭像
                Toast.makeText(this, "进入個人設置界面,暂时还没实现",
                        Toast.LENGTH_SHORT).show();
                break;
            }*/
    
            }
        }        
            
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            // TODO Auto-generated method stub
            switch(requestCode) {
            case 1:
                if(resultCode==RESULT_OK) {
                    cropPhoto(data.getData());//裁剪图片
                    
                }
                break;
            case 2:
                if(resultCode==RESULT_OK) {
                    File temp=new File(Environment.getExternalStorageDirectory()+"/head.jpg");
                    cropPhoto(Uri.fromFile(temp));//裁剪图片
                }
                break;
            case 3:
                if(data!=null) {
                    Bundle extras=data.getExtras();
                    head=extras.getParcelable("data");
                    if(headImage!=null) {
                        //上传服务器
                        setPicToView(head);//保存在SD卡中
                    ivHead.setImageBitmap(head);//用ImageView 显示出来
                    }
                }
                break;
            default:
                break;
                
            }
            super.onActivityResult(requestCode, resultCode, data);
        }
    
        //调用系统的裁剪
        public void cropPhoto(Uri uri) {
            Intent intent=new Intent("com.android.camera.action.CROP");
            intent.setDataAndType(uri, "imag/*");
            intent.putExtra("crop", "true");
            //aspectX aspectY是宽高的比例
            intent.putExtra("aspectX", 1);
            intent.putExtra("aspectY", 1);
            //outputX outputY是裁剪图片宽高
            intent.putExtra("outputX", 150);
            intent.putExtra("outputY", 150);
            intent.putExtra("return_data", true);
            startActivityForResult(intent, 3);
                
        }
        //保存在SD卡
        
        private void setPicToView(Bitmap mBitmap) {
            String sdStatus=Environment.getExternalStorageState();
            if(!sdStatus.equals(Environment.MEDIA_MOUNTED)) {//检测sd是否可用
              return;    
            }
            FileOutputStream b=null;
            File file=new File(path);
            file.mkdirs();//创建文件夹
            String fileName=path+"head.jpg";//图片名字
            try {
                b=new FileOutputStream(fileName);
                mBitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);
            }catch(FileNotFoundException e) {
                e.printStackTrace();
            }finally {
                try {
                    //关闭流
                    b.flush();
                    b.close();
                }catch(IOException e){
                    e.printStackTrace();
                }
            }
            
        }
        
    
    }
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    【建站经验】 一个成熟的大型网站系统架构演化之路
    Puppet 安装配置
    SHELL二十篇(读书笔记)
    LINUX常见小问题汇总
    shell eval命令使用
    javaweb三大框架SSH
    Java Web(八) MVC和三层架构
    在CMD中操作mysql数据库出现中文乱码解决方案
    编码与解码
    JSONP
  • 原文地址:https://www.cnblogs.com/wl2017/p/8503482.html
Copyright © 2011-2022 走看看