博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android学习笔记(三)基础知识(2)
阅读量:6908 次
发布时间:2019-06-27

本文共 7459 字,大约阅读时间需要 24 分钟。

交互对话框


 

使用Android SDK中,具有交互功能的对话框是AlertDialog窗口。

package com.example.test8;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.support.v4.app.NavUtils;public class MainActivity extends Activity {    private Button bt;    int n=0;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                bt=(Button)findViewById(R.id.button1);        bt.setOnClickListener(new Button.OnClickListener() {            public void onClick(View v) {                // TODO Auto-generated method stub                n++;                String str=Integer.toString(n);                bt.setText("点击次数:"+n);                new AlertDialog.Builder(MainActivity.this)                .setTitle("提示")                .setMessage("对话框")                .setPositiveButton("确定",new DialogInterface.OnClickListener() {                    public void onClick(DialogInterface dialog, int which) {                        // TODO Auto-generated method stub                    }                } )                .show();            }        });    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.activity_main, menu);        return true;    }}

 

拖放相片特效


  在Android中,拖动图片的特效可以通过Android.content.Context,Android,widget.BaseAdapter和Android.widget.imageView等来实现。

  在下面的列子中,context可以像画布一样,随时可以被处理覆盖。Context是作为Android.content子类。通过widget.BaseAdapter作为容器来存放Gallery所需要的图片。 

  这里是通过使用Gallery实现的相片拖拽功能,具体代码如下:

package com.example.test9;import android.os.Bundle;import android.app.Activity;import android.content.Context;import android.graphics.Color;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Gallery;import android.widget.ImageView;import android.widget.TextView;import android.support.v4.app.NavUtils;public class MainActivity extends Activity {        private TextView textview;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                textview = (TextView)findViewById(R.id.textView1);        textview.setText("特效演示");        textview.setTextColor(Color.BLUE);                Gallery gallery=(Gallery)findViewById(R.id.gallery1);        gallery.setAdapter(new ImageAdapter(this));    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.activity_main, menu);        return true;    }    public class ImageAdapter extends BaseAdapter{        private Context myContext;                private int[] myImageID={android.R.drawable.btn_minus,                android.R.drawable.btn_radio,                android.R.drawable.ic_lock_idle_low_battery,                android.R.drawable.ic_menu_camera        };                public ImageAdapter(Context c){            this.myContext=c;        }                public int getCount() {            // TODO Auto-generated method stub            return this.myImageID.length;        }        public Object getItem(int position) {            // TODO Auto-generated method stub            return position;        }        public long getItemId(int position) {            // TODO Auto-generated method stub            return position;        }        public View getView(int position, View convertView, ViewGroup parent) {            // TODO Auto-generated method stub            ImageView i=new ImageView(this.myContext);                        i.setImageResource(this.myImageID[position]);            i.setScaleType(ImageView.ScaleType.FIT_XY);                        i.setLayoutParams(new Gallery.LayoutParams(120,120));            return i;        }            }    }

 

设置about关于信息


 创建一个onCreateOptionsMenu(Menu menu)类函数,用于添加Menu菜单项,再利用onOptionItemSelected选择菜单项

package com.example.test10;import android.os.Bundle;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.view.Menu;import android.view.MenuItem;import android.support.v4.app.NavUtils;public class MainActivity extends Activity {    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        menu.add(0,0,0,"关于");        menu.add(0,1,1,"退出");        return super.onCreateOptionsMenu(menu);    }    public boolean onOptionsItemSelected(MenuItem item){        super.onOptionsItemSelected(item);        switch(item.getItemId()){        case 0:            openOptionsDialog();            break;        case 1:            finish();        }        return true;    }        private void openOptionsDialog(){        new AlertDialog.Builder(this)        .setTitle("关于")        .setMessage("***")        .setPositiveButton("OK",new OnClickListener() {                        public void onClick(DialogInterface dialog, int which) {                // TODO Auto-generated method stub                            }        })        .show();    }    }

 

程序加载中状态框


   程序加载中的提示,此功能是通过Progress Dialog类来运行,此类在Android.app.ProgressDialog类里。但是,我们需要注意使用dismiss()函数来关闭取得焦点的对话框,否则程序将陷入死循环,也不能在线程里更改CONTEXT或parent view的任何状态。

package com.example.test11;import android.os.Bundle;import android.app.Activity;import android.app.ProgressDialog;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.support.v4.app.NavUtils;public class MainActivity extends Activity {    private TextView text;    private Button bt;    public ProgressDialog myDialog=null;        @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                text=(TextView)findViewById(R.id.textView1);        bt=(Button)findViewById(R.id.button1);                bt.setOnClickListener(myShowProgressBar);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.activity_main, menu);        return true;    }    Button.OnClickListener myShowProgressBar=new Button.OnClickListener() {        public void onClick(View v) {            // TODO Auto-generated method stub            final CharSequence strDialogTile="请等待";            final CharSequence strDialogBody="程序正在运行";                        myDialog=ProgressDialog.show(MainActivity.this,strDialogTile,strDialogBody,true);                        text.setText(strDialogBody);                        new Thread(){                public void run(){                    try{                        text.setText("start");                        sleep(3000);                        text.setText("end");                    }catch (Exception e) {                        // TODO: handle exception                        e.printStackTrace();                    }                    finally{                        myDialog.dismiss();                    }                }            }.start();        }    };}

 

 

 

 

 

 

 

 

 

本文 由  创作,采用 进行许可。欢迎转载,请注明出处:
转载自: 

你可能感兴趣的文章
Centos网络管理(四)-路由转发与静态路由
查看>>
企业数据囤积是小事?Veritas的《数据囤积报告》告诉你千万别小看这些风险
查看>>
python链接mysql常见问题汇总
查看>>
UDP"打洞"原理
查看>>
cannot restore segment prot after reloc: Permission denied
查看>>
Cisco设备初始基本操作流程
查看>>
开发者必备的火狐插件
查看>>
Samba再报安全漏洞
查看>>
sql语句函数
查看>>
.NET简谈自定义事务资源管理器
查看>>
Linux-HA开源软件Heartbeat(安装篇)
查看>>
cocos2d-x游戏例子01:是男人就坚持20秒(WIN32)
查看>>
svn 备份脚本(包含mysql数据库)
查看>>
进一步理解VC中的句柄
查看>>
日志聚合与关联分析技术实例视频演示
查看>>
javascript:求绝对值最小的数
查看>>
WCF分布式开发步步为赢(3)WCF服务元数据交换、配置及编程开发
查看>>
通过CLR同步SQL Server和Sharepoint List数据(三)
查看>>
SharePoint下用C#代码上传文档至文档库的子文件夹中
查看>>
统计文章各种分类总数
查看>>