安全卫士第八天笔记
2016-03-07 13:50
381 查看
将设置好的自定义toast位置应用到外拨电话的中 case MotionEvent.ACTION_UP: int endX=ll_dragView_toast.getLeft(); int endy=ll_dragView_toast.getTop(); SharedPreferences.Editor edit = sp.edit(); edit.putInt("x",endX); edit.putInt("y",endy); edit.commit(); break; params.x=sp.getInt("x",100); params.y=sp.getInt("y",100); windowManager.addView(view, params); 设置toast位置的回显操作 //1.获取保存的坐标 int x = sp.getInt("x", 0); int y = sp.getInt("y", 0); //2.1获取父控件的属性规则,父控件的layoutparams RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) ll_dragView_toast.getLayoutParams(); //leftMargin : 距离父控件左边的距离,根据布局文件中控件中layout_marginLeft属性效果相似 params.leftMargin = x; params.topMargin = y; //2.3给控件设置属性 ll_dragView_toast.setLayoutParams(params); //2.2设置相应的属性 changed(); 双击居中的操作实现 long mHits[]=new long[2]; //设置双击居中操作 private void setDoubleClick() { ll_dragView_toast.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { /** * src the source array to copy the content. 拷贝的原数组 srcPos the starting index of the content in src. 是从源数组那个位置开始拷贝 dst the destination array to copy the data into. 拷贝的目标数组 dstPos the starting index for the copied content in dst. 是从目标数组那个位置开始去写 length the number of elements to be copied. 拷贝的长度 */ //拷贝数组操作 System.arraycopy(mHits,1,mHits,0,mHits.length-1); mHits[mHits.length-1]= SystemClock.uptimeMillis(); if(mHits[0]>=SystemClock.uptimeMillis()-500){//判断是否是双击 int l = (width - ll_dragView_toast.getWidth())/2; int t = (height -25- ll_dragView_toast.getHeight())/2; ll_dragView_toast.layout(l, t, l+ll_dragView_toast.getWidth(), t+ll_dragView_toast.getHeight()); //保存控件的坐标 SharedPreferences.Editor edit = sp.edit(); edit.putInt("x", l); edit.putInt("y", t); edit.commit(); } } }); } 创建数据 /** * 创建数据库 */ public class BlackNum extends SQLiteOpenHelper{ public final static String DB_NAME="INFO"; public BlackNum(Context context) { super(context,"BalckNum.db" , null, 1); } //第一次创建数据库的调用,创建表结构 @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table "+DB_NAME+"(_id integer primary key autoincrement,blacknum varchar(20),mode varchar(2))"); } //当数据库版本发生变化的时候调用 @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { } } 向数据库中添加数据 /** * 向数据库中添加黑名单 */ public class BlackNumDao { public static final int CALL=0; public static final int SMS=1; public static final int ALL=2; private BlackNum blackNum; public BlackNumDao(Context context) { blackNum=new BlackNum(context); } public void AddBlackNum(String num,int mode){ SQLiteDatabase database=blackNum.getWritableDatabase(); ContentValues values=new ContentValues(); values.put("blacknum",num); values.put("mode",mode); database.insert(BlackNum.DB_NAME,null,values); database.close(); } } 更新数据库中数据 //数据库的更新操作 public void UpdateBlackNum(String num,int mode){ SQLiteDatabase database=blackNum.getWritableDatabase(); ContentValues values=new ContentValues(); values.put("mode",mode); database.update(BlackNum.DB_NAME, values,"blacknum=?",new String[]{num}); database.close(); } 查询数据库中数据 //查询数据库的操作 public int queryBlackNum(String num){ int decode=-1; SQLiteDatabase database=blackNum.getReadableDatabase(); Cursor cursor = database.query(BlackNum.DB_NAME, new String[]{"mode"}, "blacknum=?", new String[]{num}, null, null, null); if(cursor.moveToNext()){ decode=cursor.getInt(0); } cursor.close(); database.close(); return decode; } 删除数据库中数据 //删除数据库中数据的操作 public void deleteBlackNum(String num){ SQLiteDatabase database=blackNum.getReadableDatabase(); database.delete(BlackNum.DB_NAME,"blacknum=?",new String[]{num}); database.close(); }
相关文章推荐
- 100 个最佳 Ubuntu 应用(中)
- 在 AppImage、Flathub 和 Snapcraft 平台上搜索 Linux 应用
- 24 个必备的 Linux 应用程序
- 注册表趣味应用小集
- 远程控制技术的应用
- 路由器访问列表的应用
- xDSL技术及其应用
- 基于XML的桌面应用
- SQL Server 2008 R2 应用及多服务器管理
- ExtJS 2.0实用简明教程之应用ExtJS
- JSP应用的安全问题
- 前端开发必须知道的JS之闭包及应用
- Android编程实现应用自动更新、下载、安装的方法
- Geohash的原理、算法和具体应用探究
- PHP开发中AJAX技术的简单应用
- PHP答题类应用接口实例
- ASP.NET过滤器的应用方法介绍
- Android编程实现将应用强制安装到手机内存的方法
- 让Android应用不被杀死(killer)的方法
- Android提高之蓝牙传感应用实例