首页 文章 精选 留言 我的

精选列表

搜索[android things],共10000篇文章
优秀的个人博客,低调大师

Android 水波纹效果实现

这个小DEMO是朋友发给小马的,忘了是谁,在这感谢下他,没有这个DEMO我真不知道安卓水波纹是怎么实现的,这个不多讲了,模拟器中有点卡的样子,大家在真机上试是正常的小马直接上代码,上效果,有需要的朋友下载下附件DEMO就可以了,里面有些是调用NATIVE库的,希望CPP高手C高手多留言指点指点,放在这,供大家下载学习交流,吼吼,好东西,必须分享,这个DEMO,小马不多讲了,直接写了,原因看注释里面就行的了 效果如下: 主控制类代码如下: packagecom.example.plasma; importandroid.app.Activity; importandroid.content.Context; importandroid.content.Intent; importandroid.os.Bundle; importandroid.util.AttributeSet; importandroid.view.MotionEvent; importandroid.view.View; importandroid.view.Window; importandroid.graphics.Bitmap; importandroid.graphics.BitmapFactory; importandroid.graphics.Canvas; importandroid.graphics.Color; /** *@Title:AnimActivity.java *@Packagecom.example.plasma *@Description:安卓水波纹效果制作学习 *@authorXiaoMa * *这个小DEMO是朋友发给小马的,忘了是谁,在这感谢下他, *没有这个DEMO我真不知道安卓水波纹是怎么实现的,这个不多讲了, *模拟器中有点卡的样子,大家在真机上试是正常的 *小马直接上代码,上效果,有需要的朋友下载下附件DEMO就可以了 *里面有些是调用NATIVE库的,希望CPP高手C高手多留言指点指点, *放在这,供大家下载学习交流,吼吼,好东西,必须分享 * */ publicclassAnimActivityextendsActivity{ @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(newPlasmaView(this)); //this.requestWindowFeature(Window.FEATURE_NO_TITLE); } } classPlasmaViewextendsViewimplementsView.OnTouchListener{ privateBitmapmBitmap; longtime; longfps; publicPlasmaView(Contextcontext){ super(context); Bitmapbmp=BitmapFactory.decodeResource(this.getResources(),R.drawable.lvzi); mBitmap=Bitmap.createBitmap(bmp.getWidth(),bmp.getHeight(),Bitmap.Config.RGB_565); AnimRender.setBitmap(bmp); this.setOnTouchListener(this); } @Override protectedvoidonDraw(Canvascanvas){ longct=System.currentTimeMillis(); if(ct-time>1000){ time=ct; fps=0; } fps++; AnimRender.render(mBitmap); canvas.drawBitmap(mBitmap,0,0,null); postInvalidate(); } @Override publicbooleanonTouch(Viewv,MotionEventevent){ AnimRender.drop((int)event.getX(),(int)event.getY(),500); returnfalse; } } classAnimRender{ publicstaticnativevoidsetBitmap(Bitmapsrc); publicstaticnativevoidrender(Bitmapdst); publicstaticnativevoiddrop(intx,inty,intheight); static{ System.loadLibrary("plasma"); } } 最后,代码小马就放在附件里面,有需要的朋友可下载学习下,在此感谢发我这人小DEMO的朋友,特此感谢!谢谢... 本文转自华华世界 51CTO博客,原文链接:http://blog.51cto.com/mzh3344258/808842,如需转载请自行联系原作者

优秀的个人博客,低调大师

[android底层]JNI字段描述符

“([Ljava/lang/String;)V” 它是一种对函数返回值和参数的编码。这种编码叫做JNI字段描述符(JavaNative Interface FieldDescriptors)。一个数组int[],就需要表示为这样"[I"。如果多个数组double[][][]就需要表示为这样"[[[D"。也就是说每一个方括号开始,就表示一个数组维数。多个方框后面,就是数组 的类型。 如果以一个L开头的描述符,就是类描述符,它后紧跟着类的字符串,然后分号“;”结束。 比如"Ljava/lang/String;"就是表示类型String; "[I"就是表示int[]; "[Ljava/lang/Object;"就是表示Object[]。 JNI方法描述符,主要就是在括号里放置参数,在括号后面放置返回类型,如下: (参数描述符)返回类型 当一个函数不需要返回参数类型时,就使用”V”来表示。 比如"()Ljava/lang/String;"就是表示String f(); "(ILjava/lang/Class;)J"就是表示long f(int i, Class c); "([B)V"就是表示void String(byte[] bytes); Java类型 符号 Boolean Z Byte B Char C Short S Int I Long J Float F Double D Void V objects对象 以"L"开头,以";"结尾,中间是用"/"隔开的包及类名。比如:Ljava/lang/String;如果是嵌套类,则用$来表示嵌套。例如"(Ljava/lang/String;Landroid/os/FileUtils$FileStatus;)Z" 另外数组类型的简写,则用"["加上如表A所示的对应类型的简写形式进行表示就可以了, 比如:[I表示int [];[L/java/lang/objects;表示Objects[],另外。引用类型(除基本类型的数组外)的标示最后都有个";" 例如: "()V"就表示void Func(); "(II)V"表示void Func(int, int); "(Ljava/lang/String;Ljava/lang/String;)I".表示int Func(String,String) 本文转自lilin9105 51CTO博客,原文链接:http://blog.51cto.com/7071976/1417563,如需转载请自行联系原作者

优秀的个人博客,低调大师

android 手机上设置呼叫转移

2010年做的一个项目了,项目中要求设置黑名单,黑名单中的来电要拒接并播放已关机或已停机的声音。这个功能最终使用了呼叫转移来实现。早期的360助手等来电工具类的应用都有类似的功能。 功能流程是:设置拒接电话,设置时启动遇忙呼叫转移,来电拒接时就转移了呼叫,设置的转移号码已关机或已停机,这样就达到了效果。 C网和G网的设置呼叫转移的规则如下: C网号码呼叫转移操作方法 1)无条件呼叫转移 开通:*72要转达的号码,再按拨打键。 取消:*720,再按拨打键。 2)遇忙呼叫转移 开通:*90要转达的号码,再按拨打键。 取消:*900,再按拨打键。 3)无应答,关机呼叫转移 开通:*92要转达的号码,再按拨打键。 取消:*920,再按拨打键。 4)遇忙呼叫转移,无信号,无应答,关机呼叫转移 开通:*68要转达的号码,再按拨打键。 取消:*680,再按拨打键。 G网设置方法: 设置方式 启用 取消 查询状态 关机转移 **62*目的电话号码#按发送键 ##62#按发送键 *#62#按发送键 无应答转移 **61*目的电话号码#按发送键 ##61#按发送键 *#61#按发送键 遇忙转移 **67*目的电话号码#按发送键 ##67#按发送键 *#67#按发送键 无条件转移 **21*目的电话号码#按发送键 ##21#按发送键 *#21#按发送键 所有转移取消 ##002#按发送键 Intent myIntentDial = new Intent(Intent.ACTION_CALL, Uri.parse(String.format("tel:%s", trasferNum))); myIntentDial.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(myIntentDial); 参考: C网133、153、189后付费号码呼叫转移操作方法 手机号码变空号 http://www.devdiv.com/forum.php?mod=viewthread&tid=31703&extra=page%3D1%26filter%3Ddigest%26digest%3D1%26digest%3D1 本文转自xyz_lmn51CTO博客,原文链接:http://blog.51cto.com/xyzlmn/1230755,如需转载请自行联系原作者

优秀的个人博客,低调大师

Android学习笔记--SQLite使用方法

SQLite介绍 http://www.sqlite.org 官方网站 小型关系数据库 SQLiteOpenHelper使用方法 getReadableDatabase() getWritableDatabase() onCreate(SQLiteDatabasedb) onOpen(SQLiteDatabasedb) onUpgrade(SQLiteDatabsedb,intoldVersion,intnewVersion) Close(); //DatabaseHelper所为一个访问SQLite的助手类,提供两个方面的功能 //第一,getReadableDatabase()和getWritableDatabasr()可以获得SQLiteDatabase对象 //第二,提供onCreate和onUpgrade两个回调函数,允许我们在创建和升级数据库时,进行操作 例:publicclassDatabaseHelperextendsSQLiteOpenHelper{ //数据库版本号 PrivatestaticfinalintVERSION=1; //必须的构造函数 PublicDatabaseHelper(Contextcontext,Stringname,CursorFactoryfactory,intversion){ Super(context,name,factory,version); } PublicDatabaseHelper(Contextcontext,Stringname,intversion){ Super(context,name,null,version); } PublicDatabaseHelper(Contextcontext,Stringname){ Super(context,name,null,VERSION); } PublicvoidonCreate(SQLiteDatabasedb){ System.out.println("createadatabase"); Db.execSQL("createtableuser(idint,namevarchar(20))"); } PublicvoidonUpgrade(SQLiteDatabasedb){ System.out.println("updateadatabase"); } } 对SQLite的增删查改 Activity操作数据库例: 1.声明控件对象(略) 2.获得控件对象(略) 3.绑定事件(略) 4.创建监听器对象(调用DatabaseHelper) //创建一个数据库 PublicvoidonClick(Viewv){ //当前的activity,还有数据名 DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,"test_db"); SQLiteDatabasedb=dbHelper.getReadableDatabase();//此时才会创建一个数据库 } //修改一个数据库 PublicvoidonClick(Viewv){ //当前的activity,还有数据名 DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,"test_db",2);//版本号变了 SQLiteDatabasedb=dbHelper.getReadableDatabase(); } //插入操作 PublicvoidonClick(Viewv){ //生成ContentValues对象 ContentValuesvalues=newContentValues(); //key是列名,value是值,值必须对应数据库列数据类型 Values.put("id",1); Values.put("name","zhangsan"); //当前的activity,还有数据名 DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,"test_db"); //得到可写数据库 SQLiteDatabasedb=dbHelper.getWritableDatabase(); //1.表名2,不允许空列3,值 Db.insert("user",null,values); } //更新操作 PublicvoidonClick(Viewv){ //当前的activity,还有数据名 DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,"test_db"); //得到可写数据库 SQLiteDatabasedb=dbHelper.getWritableDatabase(); //1.表名2,不允许空列3,值 //生成ContentValues对象 ContentValuesvalues=newContentValues(); //key是列名,value是值,值必须对应数据库列数据类型 Values.put("name","zhangsanfeng"); //1.表名2.值,3,where子句(不包括where)4,为占位符赋值 Db.update("user",values,"id=?",newString[]{"1"}); } //查询数据库 PublicvoidonClick(Viewv){ //当前的activity,还有数据名 DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,"test_db");//版本号变了 SQLiteDatabasedb=dbHelper.getReadableDatabase(); //1,表名2所要查询的列名3,筛选器4,筛选器值5.groupby6.having //7orderby创建游标对象读取数据 Cursorcursor=db.query("user","newString[]{"id","name"}","id=?") While(cursor.moveToNext()){ Stringname=cursor.getString(cursor.getColumnIndex("name")); System.out.println("query--->"+name); } } //删除操作 PublicvoidonClick(Viewv){ //当前的activity,还有数据名 DatabaseHelperdbHelper=newDatabaseHelper(SQLiteActivity.this,"test_db"); //得到可写数据库 SQLiteDatabasedb=dbHelper.getWritableDatabase(); //1.表名2.值,3,where子句(不包括where)4,为占位符赋值 Db.delete("user",values,"id=?",newString[]{"1"}); } 使用adb访问SQLite(linux命令行调试)abdshell=>ls-i=>cddata=>创建了数据库之后=>报名.数据库名=>即可进入该SQLite SQLite语句.schema//查看所有表 Linux知识补习:cd目录(进入目录)ls(查看当前目录) 本文转自My_King1 51CTO博客,原文链接:http://blog.51cto.com/apprentice/1360571,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册