用SQLite数据库存储用户信息及动画技术和相册(Android)

Posted 木头科技㉿

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用SQLite数据库存储用户信息及动画技术和相册(Android)相关的知识,希望对你有一定的参考价值。

一、项目介绍

1、SQLite数据库存储用户信息

SQLite数据库存储用户信息这里我用的是SQLiteDatabase类,当你输入用户名字和电话后,app界面点击登录会将其保存到数据库中,界面下方会显示也输入的文本内容,其保存在news.inf中,点击Database Innspector选项可查看已输入的用户信息(在这里是两个布局代码,除主界面之外,还有一个是用来承载输入信息)

2、动画技术

其本项目使用了补间动画,补间动画就是只须指定开始,结束的“关键帧”,而变化的其他帧由系统来计算,不必一帧一帧地去定义。
设计布局文件,按垂直线性布局,并放置4个按钮组件(Alpha、Scale、Rotate、Translate)和一个图像显示组件(ImageView)。

3、相册功能

修改GridView的图片查看功能,用户该图片一张图片后,界面切换成大图,并设置了淡入淡出的动画效果。可以使用Intent和Activity,传递用户选择的图片信息,在下一个页面展示。

二、实现效果

1、



2、

3、


三、源代码

以下是三个实现的逻辑代码,布局代码过于简单,套用即可,有需要者加我V:mutou88848

1、mian.java

package com.example.text;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CursorAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;


public class Main extends Activity

    SQLiteDatabase db;
    Button bn = null;
    ListView listView;
    Button shiqin,xiangce;

    @Override
    public void onCreate(Bundle savedInstanceState)
    
        super.onCreate(savedInstanceState);
        setContentView(R.layout.phone);
        db = SQLiteDatabase.openOrCreateDatabase(
                this.getFilesDir().toString()
                        + "/my.db3", null);
        listView = (ListView) findViewById(R.id.show);
        bn = (Button) findViewById(R.id.submit);
        shiqin = (Button) findViewById(R.id.shiqin);
        xiangce = (Button) findViewById(R.id.xiangce);
        shiqin.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View v) 
                Intent intent = new Intent(Main.this, TwAnimationActivity.class);
                startActivity(intent);
            
        );
        xiangce.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View v) 
                Intent intent = new Intent(Main.this, com.example.text.MainActivity.class);
                startActivity(intent);
            
        );
        bn.setOnClickListener(new OnClickListener()
        

            @Override
            public void onClick(View source)
            

                String name = ((EditText) findViewById(
                        R.id.name)).getText().toString();
                String tel = ((EditText) findViewById(R.id.tel))
                        .getText().toString();
                try
                
                    insertData(db, name, tel);
                    Cursor cursor = db.rawQuery("select * from news_inf"
                            , null);
                    inflateList(cursor);
                
                catch (SQLiteException se)
                
                    db.execSQL("create table news_inf(_id integer"
                            + " primary key autoincrement,"
                            + " news_name varchar(50),"
                            + " news_tel varchar(255))");
                    insertData(db, name, tel);
                    Cursor cursor = db.rawQuery("select * from news_inf"
                            , null);
                    inflateList(cursor);
                
            
        );
    

    private void insertData(SQLiteDatabase db
            , String name, String tel)
    

        db.execSQL("insert into news_inf values(null , ? , ?)"
                , new String[] name, tel );
    
    private void inflateList(Cursor cursor)
    
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(
                Main.this,
                R.layout.line, cursor,
                new String[]  "news_name", "news_tel" 
                , new int[] R.id.my_name, R.id.my_tel ,
                CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);
        listView.setAdapter(adapter);
    
    @Override
    public void onDestroy()
    
        super.onDestroy();
        if (db != null && db.isOpen())
        
            db.close();
        
    


2、TwAnimationActivity.java

package com.example.text;


import android.os.Bundle;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.AnimationSet;
import android.view.animation.RotateAnimation;
import android.view.animation.ScaleAnimation;
import android.view.animation.TranslateAnimation;
import android.widget.Button;
import android.widget.ImageView;
import android.view.View.OnClickListener;

import androidx.appcompat.app.AppCompatActivity;


public class TwAnimationActivity extends AppCompatActivity 
    private Button rotateButton = null;
    private Button scaleButton = null;
    private Button alphaButton = null;
    private Button translateButton = null;
    private ImageView image = null;

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        rotateButton = (Button)findViewById(R.id.rotateButton);
        scaleButton = (Button)findViewById(R.id.scaleButton);
        alphaButton = (Button)findViewById(R.id.alphaButton);
        translateButton = (Button)findViewById(R.id.translateButton);
        image = (ImageView)findViewById(R.id.image);
        rotateButton.setOnClickListener(new RotateButtonListener());
        scaleButton.setOnClickListener(new ScaleButtonListener());
        alphaButton.setOnClickListener(new AlphaButtonListener());
        translateButton.setOnClickListener(new TranslateButtonListener());
    
    class RotateButtonListener implements OnClickListener
        public void onClick(View v) 
            AnimationSet animationSet = new AnimationSet(true);
            RotateAnimation rotateAnimation = new RotateAnimation(0, 360,
                    Animation.RELATIVE_TO_SELF,  0.5f,
                    Animation.RELATIVE_TO_SELF,  0.5f);
            rotateAnimation.setDuration(1000);
            animationSet.addAnimation(rotateAnimation);
            image.startAnimation(animationSet);
        
    
    class ScaleButtonListener implements OnClickListener
        public void onClick(View v) 
            AnimationSet animationSet = new AnimationSet(true);
            ScaleAnimation scaleAnimation = new ScaleAnimation(
                    0,   0.1f,  0,  0.1f, Animation.RELATIVE_TO_SELF,
                    0.5f,  Animation.RELATIVE_TO_SELF,  0.5f);
            scaleAnimation.setDuration(1000);
            animationSet.addAnimation(scaleAnimation);
            image.startAnimation(animationSet);
        
    
    class AlphaButtonListener implements OnClickListener
        public void onClick(View v) 
//创建一个AnimationSet对象,参数为Boolean型,
            AnimationSet animationSet = new AnimationSet(true);
//创建一个AlphaAnimation对象,参数从完全不透明度,到完全透明
            AlphaAnimation alphaAnimation = new AlphaAnimation(1, 0);
//设置动画执行的时间
            alphaAnimation.setDuration(500);
//将alphaAnimation对象添加到AnimationSet当中
            animationSet.addAnimation(alphaAnimation);
//使用ImageView的startAnimation方法执行动画
            image.startAnimation(animationSet);
        
    
    class TranslateButtonListener implements OnClickListener
        public void onClick(View v) 
            AnimationSet animationSet = new AnimationSet(true);
            TranslateAnimation translateAnimation =
                    new TranslateAnimation(
                            Animation.RELATIVE_TO_SELF, 0f,
                            Animation.RELATIVE_TO_SELF, 0.5f,
                            Animation.RELATIVE_TO_SELF, 0f,
                            Animation.RELATIVE_TO_SELF, 0.5f);
            translateAnimation.setDuration(1000);
            animationSet.addAnimation(translateAnimation);
            image.startAnimation(animationSet);
        
    


3、

(1)MainActivity.java

package com.example.text;

import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

public class MainActivity extends Activity
        implements AdapterView.OnItemClickListener

    static final Integer[] mThumbIds =  R.drawable.grid_view_01,
            R.drawable.grid_view_02, R.drawable.grid_view_03,
            R.drawable.grid_view_04, R.drawable.grid_view_05,
            R.drawable.grid_view_06, R.drawable.grid_view_07,
            R.drawable.grid_view_08, R.drawable.grid_view_09,
            R.drawable.grid_view_10, R.drawable.grid_view_11,
            R.drawable.grid_view_12, R.drawable.grid_view_13,
            R.drawable.grid_view_14, R.drawable.grid_view_15, ;

    @Override
    public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.grid_view);
        GridView gridview = (GridView) findViewById(R.id.grid_view);
        gridview.setAdapter(new ImageAdapter(this));
        gridview.setOnItemClickListener(this);
    
    //Item单击事件
    @Override
    public void onItemClick(AdapterView<?> parent, View view,
                            int position, long id) 
        Intent intent=new Intent(MainActivity.this,AnimActivity.class);
        Bundle bb = new Bundle();
        bb.putInt("ID",position);
        intent.putExtras(bb);
        startActivityForResult(intent,0);
    
    // 写一个类继承BaseAdapter
    class ImageAdapter extends BaseAdapter 
        private Context mContext;

        public ImageAdapter(Context c) 
            mContext = c;
        

        public int getCount() 
            return mThumbIds.length;
        

        public Object getItem(int position) 
            return null;
        

        public long getItemId(int position) 
            return 0;
        

        public View getView(int position, View convertView, ViewGroup parent) 
            ImageView imageView;
            if (convertView == null) 
                imageView = new ImageView(mContext);
                imageView.setLayoutParams(new GridView.LayoutParams(385, 385));
                imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
                imageView.setPadding(8, 8, 8, 8);
             else 
                imageView = (ImageView) convertView;
            
            imageView.setImageResource(mThumbIds[position]以上是关于用SQLite数据库存储用户信息及动画技术和相册(Android)的主要内容,如果未能解决你的问题,请参考以下文章

iOS 文件路径及数据保存

怎么用PHP+sqlite3验证登录用户名和密码

SQLite如何存储多条信息

基于 Google-S2 的地理相册服务实现及应用

python实现用户登陆(sqlite数据库存储用户信息)

python3教程:jsonpickle和sqlite3持久化存储字典对象