- 博客(120)
- 资源 (4)
- 收藏
- 关注
原创 MySQL GROUP_CONCAT函数
语法:GROUP_CONCAT( [DISTINCT] 要连接的字段(fieldA) [ORDER BY 排序字段(fieldB) ASC/DESC] [SEPARATOR '分隔符'] )说明:DISTINCT -- 对连接字段fieldA去重;ORDER BY -- 要连接的字段fieldA依据字段fieldB排序; SEPARATOR -- 连接以什么作为分隔符。
2017-11-23 09:13:34
377
原创 Android中利用NetworkInfo判断网络状态时出现空指针(NullPointerException)问题解决
android中获取网络状态而不会引起空指针的正确写法
2016-11-30 16:49:28
4763
原创 冒泡排序算法
冒泡排序算法实现:public void sortPop(int[] data){ int tmp; for(int i=0;i<data.length;i++){ for(int j=0;j<data.length-i-1;j++){ if(data[j]>data[j+1]){ tmp=data[j]; data[j]=data[j+1]; d
2016-08-13 12:56:54
354
原创 优秀站点记录
1、泡在网上的日志2、wan Android3、android studio中文社区4、litesuits.com5、全科-不安分的码农6、做好现在的事儿
2016-08-02 17:11:41
337
原创 android中判断关于文本展示是否出现省略号的判断
对于一些文本展示类需求,经常会要求设置最大展示行数(maxLines),当文本长度大于要展示的最大内容时出现省略号,同时根据是否出现省略号做一些其他操作,比如显示"全文"等字眼,然后要求点击全文查看全部内容。这个时候就需要判断文本是否已经溢出最大展示量,下面提供自己的一种实现方法。
2016-07-11 19:16:38
2850
转载 Android MediaPlayer生命周期及状态说明
MediaPlayer的状态转换图也表征了它的生命周期,搞清楚这个图可以帮助我们在使用MediaPlayer时考虑情况更周全,写出的代码也更具健壮性。状态转换图清晰的描述了MediaPlayer的各个状态,也列举了主要的方法的调用时序,每种方法只能在一些特定的状态下使用,如果使用时MediaPlayer的状态不正确则会引发IllegalStateException异常。
2016-06-01 17:56:29
5650
原创 android中关于位移动画TranslateAnimation开始和结束时闪动问题的记录
大家都知道,android下动画效果如果想在动画结束的时候就停留在最后一帧画面上,则可以使用 Animation的setFillAfter(true)来设置一下。但是在实际应用中我们往往会在动画开始或结束时做一些操作,当所做的操作是改变开启动画控件的布局或子控件的显隐状态时,如果处理不当往往会出现闪动问题,下面就我在项目中用到的位移动画分别来分析开始和结束时闪动的问题。
2016-05-14 16:09:13
11951
原创 Android中关于EditText点击事件的响应问题记录
对于EditText,如果通过调用 setOnClickListener方法为其设置了点击事件,要注意此处有一个坑,那就是当当前焦点不在该EditText身上时,第一次的点击事件是不会响应的,即不会回调onClick()方法,之后使EditView获取焦点,再次点击时才会响应点击事件。意思就是说当焦点在所点击的EditText控件身上时,点击事件会响应,不在时就不会响应。可以考虑用Touch事件解
2016-05-13 15:34:42
7400
4
原创 两种解决修改android手机设置中字体大小后系统布局混乱的方法
在android开发中针对字体大小的设置,虽然google推荐使用sp作为字体的单位,但是如果用户在系统设置的”显示“中修改了系统默认的字体大小。就会直接影响到所有sp为单位的字体适配,所以很多app在设置了系统字体后瞬间变得面目全非。针对该问题,大概有两种解决思路:1、不用sp作为系统字体的单位,改用dp;2、重写getResource()方法。
2016-04-22 15:07:56
10644
原创 Android利用系统Action裁剪图片大小
Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri, "image/*"); // 设置裁剪 intent.putExtra("crop", "true"); // aspectX aspectY 是宽高的比例 intent.putExtra("a
2016-03-31 13:58:29
1416
原创 android中TextView嵌套在ScrollView中并自由滚动
TextView嵌套在ScrollView中,并且TextView设置有最大显示行数或最大高度时,如果TextView和ScrollView同时出现了同一方向上的滚动条的话,嵌套TextView的滚动将受限,无法正常滚动。此文中采用对TextView设置MovementMethod和Touch事件的方式对TextView的触摸滑动进行处理。
2016-02-24 09:19:14
1897
原创 设计模式之观察者模式
观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变时,它的所有依赖者都会收到通知,并自动更新。java内置的java.util.Observable类虽然使用起来非常简便,但是它也有一些黑暗面。所以,如果内置的观察者模式能够满足我们的需求是,可以使用内置的观察者模式,毕竟它们已经帮我们实现了很多逻辑,使用起来更方便,但是如果java内置的观察者模式使用时得到了限制,不妨实现自己的观察者模式,毕竟原理我们已经很清楚。
2015-11-30 11:41:03
460
原创 设计模式之策略模式
策略模式定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的客户。 封装了变化的部分,使变化的部分独立于不变的部分;面向接口编程,而非面向实现编程,使代码更有弹性,并且可以通过setter方法在代码运行过程中动态的切换算法;利用组合的方式成功的扩展了对象的功能,避免了利用继承带来的代码重写等问题。
2015-11-28 14:57:25
404
原创 WebView中常见问题总结
最近在项目中遇到对WebView的需求应用,在开发中遇到了几点问题,记录下来以便不时之需。 1、WebView中获取网页标题的问题;2、加载百度地图出现空白页问题;3、页面返回资源释放问题;4、自定义错误页面问题;5、关于有重定向页面时执行goback()方法无法正常后退的问题;6、ssl链接访问时出现空白页的问题
2015-11-20 19:41:08
3078
原创 Android自定义进度框
有时候,为了适应项目中的统一风格,或者优化进度框的显示效果,我们需要定义自己的进度框显示效果,下面实现一种可添加自己Logo的圆形旋转进度框,代码如下:1、自定义LoadingDialog类继承Dialog:package com.example.loadingdialog.view;import com.example.myloadingdialog.R;import andro
2015-07-21 11:01:57
493
原创 Android中自定义弹窗提醒控件
Android中原生的Dialog弹窗提醒控件样式单一,有时候并不能满足我们的项目需求,而且一个工程里面有时候会在多处都用到弹窗提醒的功能,代码会出现大量的冗余,工作之余,就自己实现了这么一个弹窗提醒控件。自定义控件继承自我们的Dialog,样式自定义,弹窗中的文字可通过数组参数初始化,Item个数实现了动态添加,和数组长度一致。对话框底端可展示一个Item(如:确定)或两个Item(如:确定
2015-07-17 14:06:44
2381
原创 android中进入界面时软件盘默认隐藏的设置方法
在安卓开发过程中,如果某一layout布局文件中包含EditView等可编辑的控件并且默认是第一个获取焦点时,进入界面的时候软键盘就会弹出。但是,有时我们并不希望软键盘弹出,这时,可以在layout布局文件的根布局下添加如下代码(添加到默认获取焦点的EditView等空间的前面):<LinearLayout android:layout_width="0px" android:
2015-07-15 15:57:46
1239
原创 在Activity的onCreate方法中获取控件宽高的N种方法
在Android开发过程中,有可能遇到在Activity的onCreate方法中获取控件宽高的需求,这时利用view.getWidth()或view.getMeasuredWidth()等方法获取控件的宽高,得到的值总是0。是因为当OnCreate函数发生时,只是提供了数据初始化的机会,此时还没有正式绘制界面。而绘制界面是在OnDraw方法中进行的,此时计算又显得太晚。这时
2015-07-15 14:44:30
925
原创 android中返回键的监听
android中对返回键的监听相对比较简单,方法也比较多,可分别通过重写dispatchKeyEvent(KeyEvent event)、onKeyDown(int keyCode, KeyEvent event)、onKeyUp(int keyCode, KeyEvent event)和onBackPressed() 方法监听返回键,但是这四种方法有一个严格的执行顺序,如果同时重写了
2015-07-15 09:36:27
20986
原创 android Home键的监听
Android对屏幕下方常用的三个按键消息处理是不一致的:1、菜单按键的消息在onCreateOptionsMenu、onKeyDown或onKeyUp方法中接收;2、返回按键的消息可以在onBackPressed、onKeyDown或onKeyUp方法中接收。3、对于Home按键消息的处理,既不能通过onKeyDown、onKeyUp接收到,android也没有提供专有的方法
2015-07-14 16:58:10
657
原创 Android获取状态栏和标题栏的高度
1.Android获取状态栏高度: decorView是window中的最顶层view,可以从window中获取到decorView,然后decorView有个getWindowVisibleDisplayFrame方法可以获取到程序显示的区域,包括标题栏,但不包括状态栏。于是,我们就可以算出状态栏的高度了。Rect frame = new Rect();getWi
2015-07-14 16:50:48
357
原创 android 获取SD卡状态信息
/** 获取存储卡路径 */ File sdcardDir=Environment.getExternalStorageDirectory(); /** StatFs 看文件系统空间使用情况 */ StatFs statFs=new StatFs(sdcardDir.getPath()); /** Block 的 size*/ Long blockSize=statFs.getBlock
2015-07-14 16:46:44
520
原创 android 获取mac地址
private String getLocalMacAddress() { WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); return info.getMacAddress();
2015-07-14 16:44:13
478
原创 在Activity中判断横竖屏的切换
在继承了Activity的类中,可以通过重写onConfigurationChanged方法来判断屏幕的朝向 @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if (this.getR
2015-07-14 16:39:16
767
原创 android中px和dp的相互转换
/** * 根据手机的分辨率从 dip 的单位 转成为 px(像素) */ public static int dip2px(Context context, float dpValue) { final float scale = context.getResources().getDisplayMetrics().density;
2015-07-14 16:32:13
268
原创 判断手机网络连接状态
注释:获取手机的网络状态信息需要添加权限 /** * 检查网络是否连接 * @param context * @return */ public static boolean checkNet(Context context) { // 检查WIFI boolean isWIFI = isWIFIConnection(context); // 检查MO
2015-07-14 14:40:19
835
原创 Android中利用代码去除标题栏
// 去除标题, 必须在setContentView 方法前调用requestWindowFeature(Window.FEATURE_NO_TITLE); // 去除标题
2015-07-14 14:36:20
346
原创 使用SharedPreferences读写数据
使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data//shared_prefs目录下: SharedPreferences sharedPreferences = this.getSharedPreferences("mydata", Context.MODE_PRIVATE); Editor edit
2015-07-14 14:30:04
690
原创 Android中的自定义样式
在进行Layout布局文件的开发过程中,有时候会重复设置某一属性集合(即多个控件设置的属性都一样),这时候为了简化代码,可将重复的属性集抽取成一个样式(style),具体操作为:在res/values/styles.xml文件中定义样式: center_vertical 7dip 10dip wrap_conte
2015-07-14 14:26:40
411
原创 Android开发中自定义Toast
/** * 窗体管理者 */ private WindowManager wm; private View view; long[] mHits = new long[2];//用来处理双击事件,同理可处理N击事件 /** * 自定义土司 * @param context * @param showMsg */ public void myToast(Conte
2015-07-14 14:16:39
470
原创 Android开发中获取屏幕宽高的几种方法
Android开发过程中经常会遇到获取手机屏幕宽高的需求,下面就获取屏幕宽高的方法总结如下: 方法1:利用WindowManager获取int screenWidth = getWindowManager().getDefaultDisplay().getWidth(); // 屏幕宽(像素,如:720px) int screenHeight = getWindowMana
2015-07-14 13:54:16
5683
原创 ListView的Item中子控件抢占焦点的两种解决办法
当为ListView的Item自定义布局时,如果布局中包含可获取焦点的子控件(诸如ImageButton,Button,CheckBox等子控件,也可以说是Button或者Checkable的子类控件),就会出现子控件抢占焦点的问题,即焦点被子控件截获,Item的点击事件将无法响应。提供两种简单的解决办法: 1、在自定义布局的根部局容器中添加 android:des
2015-07-13 16:04:08
2683
原创 多线程断点下载的代码实现
import java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.io.InputStreamReader;import java.io.RandomAccessFile;import java.net
2015-01-28 15:44:43
402
android自定义Tab选项卡控件
2015-07-21
android自定义Dialog
2015-07-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人