Songlcy
这个作者很懒,什么都没留下…
展开
-
React Native 暗黑模式适配方案
React Native 暗黑模式实践方案原创 2020-05-20 15:34:14 · 4399 阅读 · 1 评论 -
React Native 函数式组件优化实践
React 性能优化理念的主要方向简单概括为两个:减少重新 render 的次数。因为在 React 里最重(花时间最长)的一块就是 reconciliation(简单可以理解为 diff),如果不 render,就不会 reconciliation。 减少计算的量。主要是减少重复计算,对于函数式组件来说,每次 render 都会重新从头开始执行函数调用。关于类组件的渲染优化,...原创 2020-04-14 14:27:33 · 2643 阅读 · 0 评论 -
React Native 包体积优化实践
React Native 包体积优化实践原创 2020-04-06 16:54:07 · 1747 阅读 · 0 评论 -
React Native SDR 实践
React Native SDR实践原创 2020-03-22 17:00:33 · 706 阅读 · 6 评论 -
Android中利用反射机制来控制AlertDialog窗口不被关闭
在项目中我们经常会遇到需要在AlertDialog做一些业务选项,此时如果我们要控制选项没有被选中,就不让AlertDialog关闭,并提示用户。在Android中,因为系统封装了AlertDialog的修改,没有对外提供修改接口,所以我们不能直接控制关闭。此时我们可以利用反射机制,获取dialog中控制关闭的变量,修改该值即可完美控制AlertDialog显示和关闭了。在AlertDialo原创 2015-06-17 11:36:36 · 1138 阅读 · 0 评论 -
Android中使用Xml内置解析器pull来解析Xml原始资源
在Android中解析Xml资源文件很常见。Android为我们内置了一个叫做Pull的Xml资源解析器,它可以帮助我们轻松解析Xml资源文件,下面我就跟大家来分享下Pull解析器对Xml文件的解析步骤。1.因为在Android项目的res/目录下系统没有为我们自动创建xml文件夹,所以需要我们手动创建一个名称为 “xml”的文件夹。2.在创建好的xml文件夹下(/res/xml/)创建一原创 2015-06-21 11:51:49 · 1089 阅读 · 0 评论 -
Android中调用天气预报
下面我介绍比较简单的两种方式来完成在Android中调用天气预报。1.Weather weather = new Weather();String urlStr = "http://flash.weather.com.cn/wmaps/xml/"+cityId+".xml";try { url = new URL(urlStr); urlConnection =原创 2015-06-29 13:39:39 · 794 阅读 · 0 评论 -
js将json字符串转换为json
在数据传输过程中,json是以文本,即字符串的形式传递的,而JS操作的是JSON对象,所以,JSON对象和JSON字符串之间的相互转换是关键。例如:JSON字符串:var str1 = '{ "name": "cxh", "sex": "man" }'; JSON对象:var str2 = { "name": "cxh", "sex": "man" };一、JSON原创 2015-07-08 17:50:55 · 550 阅读 · 0 评论 -
Android中改变一个图片的透明度
Android中改变图片的透明度可以分为两种情况:1.改变IamgeView的显示透明度。2.改变图片自身的透明度。此处我们说的是第二种,看下面代码:public static Bitmap setAlpha(Bitmap sourceImg, int number) {int[] argb = new int[sourceImg.getWidth() * sourceIm原创 2015-07-09 13:46:18 · 2567 阅读 · 0 评论 -
Android中使用Camera
1.使用surfaceView来预览。2.调用Camera来设置相机。3.设置camera的参数。看下面的例子: //设置surfaceView不需要自己维护缓冲区 surfaceView_image_show.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); //获取surfac原创 2015-07-09 17:56:47 · 603 阅读 · 0 评论 -
Android调用天气预报所对应的城市Id
城市天气ID直辖市"北京","上海","天津","重庆""101010100","101020100","101030100","101040100"特别行政区"香港","澳门""101320101","101330101"黑龙江"哈尔滨","齐齐哈尔","牡丹江","大庆","伊春","双鸭山","鹤岗","鸡西","佳木斯","七台河原创 2015-06-12 11:18:25 · 3245 阅读 · 0 评论 -
You need to use a Theme.AppCompat theme (or descendant) with this activity解决方法
报错如下:java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.test2/com.example.test2.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or原创 2015-06-15 09:28:22 · 696 阅读 · 0 评论 -
Android程序 类QQ通知常驻在Notification栏 点击Notification正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例
注意:本文大部分内容转载自:newcj 的博客 请尊重他人劳动成果!今天在写完 “ android Notification 的使用”的时候,发现有几个问题,特别是设置Notification的Intent使之能够像 QQ 或其他程序一样能够正确回调到之前已经放置在后台的Task中的对应Activity,而不是创建它的一个新实例。当然重点便是如何设置该Activity 的 launchMo转载 2015-07-26 00:26:43 · 619 阅读 · 0 评论 -
如何自定义更改bitmap 或者drawble的宽和高
/*** @param path 路径* @param displayWidth 需要显示的宽度* @param displayHeight 需要显示的高度* @return Bitmap*/public static Bitmap decodeBitmap(String path, int displayWidth, int displayHeight) {B原创 2015-07-13 17:30:58 · 1511 阅读 · 0 评论 -
Activity生命周期图示
原创 2015-07-13 23:10:45 · 590 阅读 · 0 评论 -
Android中实现一键分享功能
在Android中开发中,我们会经常遇到使用一键分享的功能,今天我以使用第三方平台ShareSDK来实现一键分享向大家分享下具体的流程。下面,我就以步骤顺序依次展示在自己的Android项目中如何实现1.添加相应的Jar包,此处我添加了所有APP的jar文件:2.在官网将下载的onekeyshare包添加到自己的工程目录main下。3.将Sh原创 2015-07-15 15:57:01 · 4854 阅读 · 1 评论 -
Android Studio中更改背景和设置字体大小
好久没写博客了,最近很多事情比较忙。今天来一发!1,设置字体大小2,设置背景主题原创 2015-08-24 12:10:34 · 1214 阅读 · 0 评论 -
Android中使用Intent打开本地图库
1. //打开系统相册 Intent intent = new Intent( Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);startActivityForResult(intent, Code.REQUEST_CODE);2.//原创 2015-07-15 17:38:32 · 6139 阅读 · 3 评论 -
Android中如何实现ListView的分页加载
上一篇我粗略的说了下实现ListView下拉刷新的主要步骤,接下来我就如何实现ListView的分页加载来说下主要实现步骤:1.继承ListView,ListView有一个addFooterView的方法用来在ListView的底部添加一个view。2.同样给ListView添加滚动监听事件。3.通过OnScrollListener中的onScroll方法来判断ListView是否滑到原创 2015-07-16 14:31:34 · 1152 阅读 · 0 评论 -
Android中实现List下拉刷新
今天,我以如何在Android中实现下拉刷新介绍下主要实现步骤:1.重写ListView。ListView中有一个addHeaderView()的方法用来在顶部添加一个view。2.让ListView实现触摸事件和滚动事件,来根据状态动态改变view。3.利用回调接口来更新ListView。下面看具体代码:public class RefreshListView extends原创 2015-07-16 14:27:12 · 839 阅读 · 0 评论 -
在Activity获取屏幕的宽高
在Activity中获取屏幕的宽高很简单,借助WindowManager来实现是多么轻松的一件事情。看代码: DisplayMetrics dm = new DisplayMetrics(); this.getActivity().getWindowManager().getDefaultDisplay().getMetrics(dm); int width = dm.w原创 2015-08-03 14:11:55 · 683 阅读 · 0 评论 -
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView
java.lang.IllegalStateException:The specified child already has a parent. You must call removeView() on the child's parent first.在android代码中如果出现此异常,说明在同一个布局中添加了相同的组件实例。应该创建不同的实例组件,并将其添加到布局当中原创 2015-07-22 16:02:14 · 999 阅读 · 0 评论 -
Android中万能适配器
今天的例子是关于在Android中实现一个万能的适配器,以减少重复的代码编写和提高代码效率。我将直接贴出代码供大家参考。1.实现自定义的ViewHolder类:package com.example.test.utils;import android.content.Context;import android.graphics.Bitmap;import androi原创 2015-09-28 15:27:24 · 977 阅读 · 0 评论 -
Android中实现第三方分享
分享,在我们的生活中已经无处不在了。我们每天都在传播着各种各样的信息。今天,我们将一起实现如何在Android项目中集成第三方的分享功能———新浪微博分享。在项目中实现分享功能,我们需要使用移动开发服务平台(mob.com)所提供的社会化功能:首先,我们需要在mob.com平台上注册自己的账户并申请Appkey和secret。然后我们需要在新浪微博开放平台上注册自己的账号,如果已有原创 2015-09-29 09:56:54 · 2847 阅读 · 0 评论 -
Android中实现短信验证功能
在上一篇博客上,我们分享了原创 2015-09-30 09:50:02 · 1252 阅读 · 1 评论 -
Volley的简单使用
13年,Google大会上的新技术:Volley( 万箭齐发 ) 使得在android上改变网络请求的高效率得以实现。下面,我就向大家简单介绍下在实际项目中如何使用Volley进行网络数据的请求。在android中使用Volley很简单,大概可以分为以下几步:(1)下载Volley.jar的最新架包,并将其build到项目中。(2)使用Volley请求数据之前,需要一个请求队列来维原创 2015-09-14 15:52:10 · 561 阅读 · 0 评论 -
如何将APP安装包发布到360手机助手上
工具/原料电脑APP安装包360助手移动应用市场方法/步骤登陆360移动开发平台官网。如图注册一个360账号,手机号码注册,注册成功并邮箱激活账号。如图用注册账号登陆360应用开发平台。如图原创 2015-10-08 15:08:53 · 1012 阅读 · 0 评论 -
底部渐入的Dialog,并伴有黑色遮罩层
原理很简单,就是通过AlertDialog获取Window,设置Window的显示位置和动画就可以轻松实现,直接上代码了:LayoutInflater inflater =this.getLayoutInflater();View v = inflater.inflate(R.layout.s, (ViewGroup)findViewById(R.id.customDialog));A原创 2015-10-10 11:27:34 · 2767 阅读 · 0 评论 -
Android中打开手机中存在的图片软件
分为两种方式: 一、 Intent intent = new Intent();intent.setType("image/*");intent.setAction(Intent.ACTION_GET_CONTENT);二、 Intent intent = new Intent();intent.setType("image/*");intent.setAction原创 2015-10-09 15:24:51 · 1246 阅读 · 0 评论 -
Android中调用系统相机、系统相册来获取图片,并裁剪图片。
今天,跟大家分享下如何在Android中实现调用系统相机、系统相册来获取图片的功能。一、首先,讲解下调用相机原理:1.调用系统相机很简单,通过Intent简单几行代码搞定,在调用相机时,为了获取拍下后的照片,我们需要创建一个File目录来保存,此处我们通过Environment来获取SD卡目录进行保存。2.我们以系统时间命名图片名称,并创建一个临时的File。3.调用Uri,fro原创 2015-10-09 17:56:17 · 1499 阅读 · 0 评论 -
Android中索引关联联系人
今天,我将和大家分享如何在Android实现索引,并使用索引来关联电话联系人。如果从头来说,可能需要很大的篇幅来讲解,我就长话短说,将原理告诉大家,并将核心代码贴出来,供大家参考。一、实现索引我们使用重写View的方式来实现索引。即继承View后,重写onDraw(Canvas canvas)方法将A-Z的字母使用Paint绘制出来,代码很简单,其中的核心点就是获取屏幕高度和宽度,并根原创 2015-10-10 16:18:08 · 831 阅读 · 0 评论 -
Android中添加常驻通知栏
直接看代码吧,很简单的小功能,核心代码就是设置notification的flags为Notification.FLAG_ONGOING_EVENT。// 添加常驻通知private void setNotification() {NotificationManager notificationManager = (NotificationManager) getSystemServic原创 2015-10-10 17:47:48 · 16951 阅读 · 0 评论 -
Android中实现UI模板-topbar
在Android的app开发中,我们经常可以看到多类app的顶部导航栏基本是大同小异的。那么我们有木有一种方式可以写一个模板,然后自己定义并重复使用呢?显然,这个问题是可以解决的。下面,我大概分享下实现思路:1.首先,我们需要定义一个自己的布局,此时我们继承自RelativeLayout。2.然后我们自定义属性来控制布局中的按钮和标题:导航栏一般都是分三个部分,即:左边按钮,中间标题,原创 2015-10-12 12:01:02 · 661 阅读 · 0 评论 -
Android中获取缓存大小和清除缓存功能
前言本篇博客要给大家分享的如何获取应用缓存的大小和清除缓存的功能,我们知道我们应用当中经常会产生一些数据,比如图片的缓存,数据库文件,配置文件等等。我们开发产品的时候,可能会有这样的一个需求清除应用内缓存的数据,可以让用户选择删除应用内产生的数据,这也是比较人性化的设计点。例如笔者参与开发的一款产品的设置界面就提供了清除缓存的功能,如下图所示:在贴一转载 2015-09-23 10:45:02 · 818 阅读 · 0 评论 -
优化布局几点建议
使用复杂的图片:在LineraLayout布局中包含一个ImageView和一个TextView,可以使用一个复杂的drawable代替,性能会更好。合并根框架:假如一个FrameLayout作为一个布局的根视图,不提供背景或者填充,它可以被一个带有标志的布局代替。无用的树叶:对于一个扁平结构中一个布局没有孩子,没有背景,可以被删掉。无用的父类:一个布局不是ScrollView或者不是原创 2015-09-23 23:20:37 · 892 阅读 · 0 评论 -
github android优秀的开源项目、作者推荐
推荐一些优秀的作者及其开源项目:Jake Wharton (github地址:https://github.com/JakeWharton)ActionBarSherlock、Android-ViewPagerIndicator、butterknife、NineOldAndroidsSergey Tarasevich (github地址:https://github.c原创 2015-11-22 08:31:14 · 925 阅读 · 0 评论 -
androd中实现仿CardView的自定义阴影效果
android:shape="rectangle" android:dither="true" > //此处设置底部阴影效果,同时也可以设置top,left,right。 android:shape="rectangle"原创 2015-11-23 16:25:36 · 7646 阅读 · 0 评论 -
Activity切换动画之-缩放,扩大与透明改变的效果
今天跟大家分享一组在Activity切换时的动画效果,直接看代码:假设在A启动B时的情况下:anim_enter -- android:activityOpenEnterAnimation :B进入的动画效果:anim_exit -- android:activityOpenExitAnimation:A结束的动画效果:当B结束时,B退出,A进入的动画效果:ba原创 2015-11-19 14:16:44 · 5388 阅读 · 5 评论 -
android:windowSoftInputMode属性详解
android:windowSoftInputModeactivity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性。这个属性能影响两件事情:【一】当有焦点产生时,软键盘是隐藏还是显示【二】是否减少活动主窗口大小以便腾出空间放软键盘它的设置必须是下面列表中的一个值,或一个”state…”值加一个”ad转载 2015-12-29 17:19:34 · 459 阅读 · 0 评论 -
Android开发之获取手机网络状态及网络是否连接
在Android中,判断网络状态和网络是否连接时一件很简单的事情,SDK为我们提供了一个ConnectivityManager类来帮助我们获取网络的状态。在网络状态改变的情况下,Android自身会发出一个Action为:android.net.conn.CONNECTIVITY_CHANGE的broadcastReceiver。我们只需要创建一个Receiver来接收系统发出的广播即原创 2015-11-29 15:00:42 · 3473 阅读 · 0 评论