前面学习了动态生成表格,不单单是要动态生成控件,也同时生成一个事件。接下来用个小小栗子去了解这个知识点。<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" ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap...
相信经常使用移动应用的用户都很熟悉侧滑菜单栏, 下拉, 下弹, 上弹等应用场景, 几乎主流的移动应用无论IOS 还是Android都能看到. 2.3以前的时候, 很多第三方比如SlidingMenu, MenuDrawer, ActionbarSherlock等等都很大程度的丰富和深化了这种交互理念.能让小小的屏幕, 容纳更多的交互接口. 也是这种趋势, Android官方在v4终于推出了DrawerLayout. 表示对侧滑的重视与肯定.唠叨到这了. 去看了DrawerLayout的源码和官方示例. 官方提供...
int[] location = new int[2] ;view.getLocationInWindow(location); //获取在当前窗口内的绝对坐标view.getLocationOnScreen(location);//获取在整个屏幕内的绝对坐标location [0]--->x坐标,location [1]--->y坐标 getLocationOnScreen得到该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标getLocationInWindow ,计算该视图在它所在的widnow的坐标x,y...
01. Retrofit的认识 A type-safe Http client for Android and Java. 封装了OkHttp, 也是由square公司贡献的一个处理网络请求的开源项目 https:///github.com/square/retrofit 02. 在gradle中配置依赖, 因为封装了 okhttp, 所以可以不再申明对 okhttp 的依赖 03. 配置Activity 04. 配置 Retrofit 接口 05. Activity 中业务事件完成 06. Bug问题 07.权限问题 (正常打开,执行功能时闪退) ...
尊重原著,转自http://www.xuebuyuan.com/1291595.html。 DDMSDDMS是一款Google* 提供的应用,可作为独立的工具运行,也可通过ADT Eclipse* 插件集成到Eclipse* 中。它提供了强大的特性集合,能帮助您快速了解应用的运行状况。线程更新DDMS中的线程监控和评测浏览对于管理大量线程的应用很有用。要启用,点击 Update Threads(更新线程)图标即可开始。图 1这使下面的窗口会显示面向选中VM进程的所有线程的名称和其他细节。图 2uti...
Android项目中使用lambda表达式或Java8新特性,需要在app/build.gradle中添加如下配置android { ... defaultConfig { ...jackOptions.enabled = true }compileOptions{ sourceCompatibility org.gradle.api.JavaVersion.VERSION_1_8 targetCompatibility org.gradle.api.JavaVersion.VERSION_1_8 }}原文:http://www.cnblogs.com/corey611/p/6638812.html
教你轻松显示Gif图片 大家都知道,Android开发模拟器为了节省内存,一般不支持直接显示gif图片,即使你强制设置了,也只会显示图片的第一帧。看到网上也有许多的方法,来实现此功能,可都比较的繁琐,需要修改android源代码来实现或者用gif解析器来实现。在此文章中,这里教大家一种比较简洁的一个方法,你可以把这个类当做是一种工具类。用的时候,直接搬到程序里面,更改下图片的资源,就可以非常轻松的显示gif图片了。 步骤1:...
//接受子线程发来的消息Handler hanler = new Handler() {@Overridepublicvoid handleMessage(Message msg) {////执行接收到的通知,更新UI 此时执行的顺序是按照队列进行,即先进先出super.handleMessage(msg);Bundle B=msg.getData();}//创建一个子线程Thread thread = new Thread(new Runnable() {@Overridepublicvoid run() {// TODO Auto-generated method stubString str = "1";HttpGet get = new HttpGet("http://api.ma...
1.打开AndroidStudio2. 安装ideasmali插件,File->Settings->Plugins->install plugin from disk,下载安装ideasmali插件。ideasmali下载链接:链接:https://pan.baidu.com/s/1htl26qS 密码:0pre3. 打开Android Device MonitorTools->android原文:https://www.cnblogs.com/hyh123/p/12065788.html
一 taobao搜索关键字分析1.导出淘宝数据文件夹。2.搜索search 找到search文件夹。查看里面可疑文件如history_8d4255cc9c9199c6ec3be940936986b9。3.adb rm 删除该文件断网后无法查看宝贝历史搜索记录。4.全盘搜索关键字没有定位到。(猜测淘宝用插件方式实现子模块功能 在lib下的so其实就是apk) 二 加密文件算法。加密文件解密直接AES128解密。key的十六进制为7c0870ad560586cdd44cb9f218843e81。三 解密结果[{"groupType":"nt_hi...
1、考虑业务逻辑的可重用性和复杂程度,是否有必要设计出新的类或抽取新的私有方法来封装逻辑,或者直接在原方法上编码(如果足够简单)。2、新的业务逻辑,是否在某些地方已经存在,可以复用,即使不存在,这些逻辑是应该封装到新的类中,还是应该放置到现有的类中,这需要进行清晰的职责划分。3、需要在设计和性能上作出权衡。4、如果在现成的系统中增加新的功能,而现成系统的编码风格与你想要的相差很远,但你又没有足够的时间...
android关闭日志 我们在开发时,经常会输出各种日志来debug代码。但是等到应用发布的apk运行时不希望它输出日志。关闭输出日志Log.v(),Log.i(),Log.w(),Log.v(),Log.e()等原理:那么我们可以通过proguard来删除各种日志输出代码。然后导出apk时,将会过滤掉日志代码。通过配置proguard,将类android.util.Log的方法给置为为无效代码。(proguard是一个代码优化的工具,也可以混淆代码) assumenosideeffectsassumenosideeffects,a...
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:layout_width="match_parent"android:layout_height="60dip"android:background="#8866ff00"android:gravity="center"android:text="程序锁"android:textSize="24sp"/><LinearLayoutan...
当在Android4.4上进行图片的扫描功能开发时一般会使用:sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://"+ Environment.getExternalStorageDirectory()+ picPath)));的广播因为Android4.4中限制了系统应用才有权限使用广播通知系统扫描SD卡,所以会抛题目异常。解决方法:使用MediaScannerConnection执行具体文件或文件夹进行扫描,核心代码如下:if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KI...
KEYCODE_UNKNOWN=0;KEYCODE_SOFT_LEFT=1;KEYCODE_SOFT_RIGHT=2;KEYCODE_HOME=3;KEYCODE_BACK=4;KEYCODE_CALL=5;KEYCODE_ENDCALL=6;KEYCODE_0=7;KEYCODE_1=8;KEYCODE_2=9;KEYCODE_3=10;KEYCODE_4=11;KEYCODE_5=12;KEYCODE_6=13;KEYCODE_7=14;KEYCODE_8=15;KEYCODE_9=16;KEYCODE_STAR=17;KEYCODE_POUND=18;KEYCODE_DPAD_UP=19;KEYCODE_DPAD_DOWN=20;KEYCODE_DPAD_LEFT=21;KEYCODE_DPAD_RIGHT=22;KEYCODE_DPAD_CENTER=23;KEYCODE_VOLU...