任何问题请联系WX:uu16853

买模板送网站采集器 让你轻松放开双手运营网站!

购买更多有优惠!

WordPress插件Visual Composer无法加载使用的解决方法

Visual Composer 是一个强大的可视化编辑器,与Wordpress配套使用,简直是非程序员的福音,可以自由排版、编辑页面的内容,非常方便。许多老外写的主题,都已经集成了这个插件的功能在里面了。 不过近期由于Wordpress更新4.5X之后,Visual Composer插件在编辑的页面的时候总是会显示在加载中,排版加载不出来的情况。不管是刷新还是重装插件,甚至是重装Wordpress,都无法解决这个问题 解决方法:升级Visual Composer版本到4.11.2即可解决。 不过由于Visual Composer是一个付费插件 如果你是破解版(不花钱),直接在线更新插件是更新不了的,当然,如果你是付费的正版主题,像The7或是Avada可以直接向作者索要更新版本 使用方法: 1、找到主题使用的Visual Composer插件停用掉之后,再将它卸载掉 2、重新再上传新版本的Visual Composer 4.11.2安装,重新启用。 3、再去编辑页面,刷新,看看是不是你熟悉的Visual Composer已经能够成功加载了。 在网上找到了Visual Composer插件的新版本,分享给大家: 链接: http://pan.baidu.com/s/1ccdWOA 密码: k4z6

Android AIDL远程服务使用示例 Android开发技术

  很多网友来函表示对Android AIDL不是很理解,这里Android123准备了一个简单的例子,帮助大家了解Android上比较强大的远程服务设计吧。   一、为什么要使用AIDL,他的优势有哪些呢?   AIDL服务更像是 一个Server,可以为多个应用提供服务。由于使用了IDL这样类似COM组件或者说中间语言的设计,可以让后续的开发者无需了解内部,根据暴漏的接口实现相关的操作,AIDL可以工作在独立的进程中。  二、学习AIDL服务需要有哪些前置知识?   作为Android上服务的扩展,首先你要了解Android Service模型,Android Serivice我们可以分为两种模式,三个类型,1.最简单的Service就是无需处理onBind方法,一般使用广播通讯,效率比较低。2. 使用Binder模式处理Service和其他组件比如Activity通讯,Android开发网提示对于了解了Binder模式的服务后,开发AIDL远程服务就轻松容易的多。  三、具体实例,我们以com.android123.cwj.demo为工程名,首先在工程目录的com.android123.cwj目录下创建一个ICWJ.aidl文件,内容为   package com.android123.cwj;   interface ICWJ {   String getName();  }    如果格式AIDL格式没有问题,在Eclipse中ADT插件会在工程的gen目录下会自动生成一个Java实现文件。  在Service中代码如下:  public class CWJService extends Service {  public static final String BIND = "com.android123.cwj.CWJService.BIND";   public String mName="android123";  private final ICWJ.Stub mBinder = new ICWJ.Stub()  {      @Override      […]

Android中的正则表达式Regex使用 Android开发技术

   对于数据的提取查找,我们推荐大家使用功能强大的正则表达式,在Android平台中可以方便的使用Java VM中自带的Regex正则表达式库,实际测试性能比STL和Boost的差不了多少,当然了Android上的正则库是NDK编写的底层。   这里我们就拿常用的电话号码匹配来做个例子,大家都知道国外的号码中间有几个横杠,这里我们就用国内的区号来测试吧。 String phoneArray =  "cwj 的号码:021-12345\n" +  "smart 的号码:021-88888\n"+   "李雷 的号码:010-99999\n" +  "韩美美 的号码:021-66666\n";    如果我们需要匹配以021开头的正则表达式为 .*021-\\d{5}   ,我们使用Java的Pattern类编译封装,使用matcher来查找,其中group方法就是结果,当然group(0)是找的自己串,同时可能有多个结果,注意数组下溢问题。      Pattern pattern = Pattern.compile(".*021-\\d{5}");        Matcher matcher = pattern.matcher(phones1);        while(matcher.find())         {          String s= matcher.group() ;          Log.e(s,"android123.com.cn"); // 使用Android的Logcat查看运行结果,直接使用e标志红色的为结果。                 }    正则表达式相对强大,如果过去做过Web开发的你,对于用户输入的过滤可能相当的熟悉。具体的正则式编写可以查看网上的相关内容。

WebView使用技巧和介绍 Android开发技术

  在Android的所有控件中,WebView的功能是最强大的作为直接从android.webkit.Webview实现的类可以拥有浏览器所有的功能,Webview可以让开发人员从Java转向html+js这样的方式,如果你掌握ajax可以方便通过这种方式配合远端server来实现一些内容。   Webview中设置字体,可以使用 WebView.getSettings().setDefaultFontSize() 方法,设置屏幕的缩放级别可以使用 WebView.getSettings().setDefaultZoom() 来实现。   目前在Android 2.2中已经加入了Adobe Flash Player功能,我们可以WebView.getSettings().setPluginsEnabled(true); 设置允许Gears插件来实现网页中的Flash动画显示。   Webview可以帮助我们设计内嵌专业的浏览器,相对于部分以省流量需要服务器中转的那种 html解析器来说有本质的区别,因为它们没有JavaScript脚本解析器,Android123认为未来这种方式不会有什么发展空间,代表软件Opera Mini以及国内的一些名为“XX浏览器”。   在WebView中显示AlertDialog窗口提示,这里我们通过JavaScript脚本直接互通,在一个WebView中直接显示js的alert可以重写onJsAlert方法即可。   public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result)       {           new AlertDialog.Builder(myApp)               .setTitle("Android开发网")               .setMessage(message)    //从形参中传递的,同时还有String url等等            .setPositiveButton(android.R.string.ok,                       new AlertDialog.OnClickListener()                       {                           public void onClick(DialogInterface dialog, int […]

Android内存管理-SoftReference的使用 Android开发技术

  很多时候我们需要考虑Android平台上的内存管理问题,Dalvik VM给每个进程都分配了一定量的可用堆内存,当我们处理一些耗费资源的操作时可能会产生OOM错误(OutOfMemoryError)这样的异常,Android123观察了下国内的类似Market客户端设计,基本上都没有采用很好的内存管理机制和缓存处理。   如果细心的网友可能发现Android Market客户端载入时,每个列表项的图标是异步刷新显示的,但当我们快速的往下滚动到一定数量比如50个,再往回滚动时可能我们看到了部分App的图标又重新开始加载,当然这一过程可能是从SQLite数据库中缓存的,但是在内存中已经通过类似SoftReference的方式管理内存。   在Java中内存管理,引用分为四大类,强引用HardReference、弱引用WeakReference、软引用SoftReference和虚引用PhantomReference。它们的区别也很明显,HardReference对象是即使虚拟机内存吃紧抛出OOM也不会导致这一引用的对象被回收,而WeakReference等更适合于一些数量不多,但体积稍微庞大的对象,在这四个引用中,它是最容易被垃圾回收的,而我们对于显示类似Android Market中每个应用的App Icon时可以考虑使用SoftReference来解决内存不至于快速回收,同时当内存短缺面临Java VM崩溃抛出OOM前时,软引用将会强制回收内存,最后的虚引用一般没有实际意义,仅仅观察GC的活动状态,对于测试比较实用同时必须和ReferenceQueue一起使用。   对于一组数据,我们可以通过HashMap的方式来添加一组SoftReference对象来临时保留一些数据,同时对于需要反复通过网络获取的不经常改变的内容,可以通过本地的文件系统或数据库来存储缓存,希望给国内做App Store这样的客户端一些改进建议。

Zipalign使用方法-SDK中的APK文件优化工具 Android开发技术

   在Android SDK中包含了一个工具名为Zipalign,它可以优化你的APK程序包,我们都知道APK的MIME其实就是一个Zip压缩文件,通过Zipalign可以让你的应用程序运行更快,Android123猜测从原理上来讲应该是优化Zip文件的解压速度,毕竟这个工具的文件名为zip对齐。    在Android平台中,数据文件存储在apk文件中,可以多进程的访问,如果你开发过Win32可能知道程序的粒度对齐问题,不错虽然不是PE格式的文件,在Zip中一样,资源的访问可以通过更好的对其优化,而zipalign使用了4字节的边界对齐方式来影射内存,通过空间换时间的方式提高执行效率。下面Android开发网给大家一个例子来看下zipalign使用的例子:   zipalign位于android sdk的tools文件夹下面,如果你使用windows操作系统可以通过cmd来执行它:    完整的命令行说明为    E:\android-sdk-windows\tools>zipalign.exe Zip alignment utilityCopyright (C) 2009 The Android Open Source Project Usage: zipalign [-f] [-v] <align> infile.zip outfile.zip       zipalign -c [-v] <align> infile.zip   <align>: alignment in bytes, e.g. ‘4’ provides 32-bit alignment  -c: check alignment only (does not modify file)  -f: overwrite existing […]

Android上鲜为人知的UI控件介绍和使用 Android开发技术

  很多Android应用开发者可能习惯了常见的ListView和GirdView其实,Google还提供了一些不错的UI控件,丰富了Android应用的UI显示,只要了解View和Adapter之间的关系,相信你可以很方便的了解每个种控件的使用和扩展,今天Android123一起来谈下,鲜为人知的Android UI控件。   1. SlidingDrawer 抽屉式滑动控件   在Android 1.x时代,功能表是通过Home Screen底部的一个按钮,可以拖拉出来一个View,这种控件其实Android上从1.5开始加入,使用时直接在layout中定义即可,xml布局代码如下: 当然了下面的match_parent就是fill_parent在2.2中被重命名了   <SlidingDrawer     android:id="@+id/drawer"     android:layout_width="match_parent"     android:layout_height="match_parent"      android:handle="@+id/handle"     android:content="@+id/content">      <ImageView         android:id="@id/handle"         android:layout_width="88dip"         android:layout_height="44dip" />      <GridView         android:id="@id/content"         android:layout_width="match_parent"         android:layout_height="match_parent" />  </SlidingDrawer>   有关控制,大家可以看下Android 1.5或1.6的Launcher源码,这里SlidingDrawer主要实现了void  setOnDrawerCloseListener(SlidingDrawer.OnDrawerCloseListener onDrawerCloseListener) 和 void  setOnDrawerOpenListener(SlidingDrawer.OnDrawerOpenListener onDrawerOpenListener) 以及 void  setOnDrawerScrollListener(SlidingDrawer.OnDrawerScrollListener onDrawerScrollListener) 这三个接口,可以获取抽屉控件的打开,关闭和拉动,同时本类提供了很多方法,详细的大家可以在Android SDK中的android.widget.SlidingDrawer分支查看   2. PopupWindow 气球提示控件   有关PopupWindow可以让我们想起Android刚刚开始有输入法框架的时候,当用户按下屏幕软键盘时,弹出的气球提示,这个View可以用PopupWindow来实现,PopupWindow比较方便的就是可以浮动在一个Activity中,设置成为透明或什么可以当做工具栏来使用。具体的大家可以翻看GIT代码中有关Android输入法的代码了解。   3. […]

Android Fragment使用详解 Android开发技术

  有关Android Fragment相关内容,昨天我们在Fragment对比Activity – Android碎片介绍一文简单讲了下Fragment的作用以及它的生命周期,今天Android123主要讲些Fragment的管理控制、性能优化以及和Activity的传输相关内容。   一、 管理Fragment    管理Fragment在你的Activity你需要使用一个名为FragmentManager的类,通过调用getFragmentManager()方法来实例化该管理类在你的Activity种。 FragmentManager 类一些主要的方法有通过findFragmentById()来获取一个Activity中有关Fragment布局。当然还有类似findFragmentByTag()方法,以及唐Fragment中出栈的popBackStack()同时可以注册addOnBackStackChangedListener()管理.具体的可以在android.app.FragmentManager类中了解  二、 优化Fragment事物处理   一个很好的特性在添加,删除,替换fragment在Activity时可以使用FragmentTransaction类来提高批量处理的效率,这点和SQLite的数据库更新原理类似。  FragmentManager fragmentManager = getFragmentManager();  //实例化fragmentmanager类 FragmentTransaction transaction = fragmentManager.beginTransaction(); //通过begintransaction方法获取一个事物处理实例。   在这期间可以使用 add(), remove(), 以及  replace(). 最终需要改变时执行 commit()即可,接下来我们写代码   transaction.replace(R.id.fragment_container, newFragment);   transaction.addToBackStack(null);   transaction.commit();   三、Fragment和Activity互相通讯   通常Fragment中我们放入平时标准的控件或自定义的控件,基本上和Activity一样,但是如何Fragment中的View布局也是放到Activity中的,这里Android开发网提示大家有两种方法来实现   View listView = getActivity().findViewById(R.id.cwj); //通过getActivity方法可以获取一个Activity中的fragment,这里的cwj是一个fragment,在activity中的布局如下:   <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="horizontal"     android:layout_width="match_parent"     […]

Action Bar使用方法 – Android活动栏(一) Android开发技术

  在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个重要的内容,Action Bar主要是用于代替传统的标题栏,对于Android平板设备来说屏幕更大它的标题使用Action Bar来设计可以展示更多丰富的内容,方便操控。   Action Bar主要功能包含:   1. 显示选项菜单  2. 提供标签页的切换方式的导航功能,可以切换多个fragment.   3.  提供下拉的导航条目.  4. 提供交互式活动视图代替选项条目   5. 使用程序的图标作为返回Home主屏或向上的导航操作。   首先我们一起来看下Action Bar代替传统Title的效果,下面一个平板应用的标题栏,是不是图标很大啊。     Android开发网提示在你的程序中应用ActionBar需要注意几点,SDK和最终运行的固件必须是Android 3.0即honeycomb,在androidmanifest.xml文件中的uses-sdk元素中加入android:minSdkVersion或android:targetSdkVersion,类似 <manifest xmlns:android="http://schemas.android.com/apk/res/android"       package="com.android123.cwj"       android:versionCode="1"       android:versionName="1.0">     <uses-sdk android:minSdkVersion="honeycomb" />     <application … >         …     </application> </manifest>   如果需要隐藏Action Bar可以在你的Activity的属性中设置主题风格为NoTitleBar在你的manifest文件中,Android123提示大家,下面的代码在3.0以前是隐藏标题,而在3.0以后就是隐藏ActionBar了,代码为   <activity android:theme="@android:style/Theme.NoTitleBar">    一、添加活动条目 […]

Loader和Fragment使用示例代码 Android开发技术

  Loader和Fragment都是Android 3.0的新特性,有关Fragment相关的内容Android开发网已经用了多个篇幅介绍,而Loader相关的大家可以通过 LoaderManager – Android 3.0新特性 一文了解Loader的作用和结构,下面就以一个简单的工程示例代码了解下Loader。 public class FragmentListCursorLoader extends Activity {     @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);         FragmentManager fm = getFragmentManager(); //获取FragmentManager这个服务实例         if (fm.findFragmentById(android.R.id.content) == null) { //这个资源是android内部的布局,注意是android.R            CursorLoaderListFragment list = new CursorLoaderListFragment();            fm.beginTransaction().add(android.R.id.content, list).commit();        }    }     public static class CursorLoaderListFragment extends ListFragment            implements OnQueryTextListener, LoaderManager.LoaderCallbacks<Cursor> {         […]

Android示例程序Snake贪食蛇代码分析(三) Android开发技术

  今天我们分析下最复杂的SnakeView的设计,它是派生于TileView方砖类,TileView构建是基于Android直接的显示类View,如果不明白的可以查看Android示例程序Snake贪食蛇代码分析(二)一文有关TileView类的实现, 首先我们看到整个游戏分 READY、PAUSE 、RUNNING 、LOSE四种mMode状态模式,分别对应准备、暂停、运行中、结束(死亡),毕竟贪食蛇没有胜利这个结果。   整个Snake的运行分4个方向,NORTH、SOUTH 、EAST、WEST分别对应了北、南、东、西四个方向,其中变量mDirection对应当前的方向,而mNextDirection对应下个运行时的位置。这里星星分3种,使用的是一个Drawable图片,分RED_STAR、YELLOW_STAR和GREEN_STAR三种颜色,游戏的星星出现位置由Random随机数生成器来决定,这里Random一般和Timer系统时钟来随机生成更真实一些,通过一个Handler对象来控制画面的更新,使用了this.update();和this.invalidate();这两个本地方法,Update和invaildate均为android.view.View类的本地方法。这里资源的使用通过Resources r = this.getContext().getResources();获取了r对象的实例,通过r.getDrawable(R.drawable.redstar)获取资源名为redstar的资源,返回的是一个Drawable对象。   对于按键信息,直接重写View类的onKeyDown方法,这里KeyEvent传递的是按键的映射,比如KEYCODE_DPAD_UP向上,KeyEvent.KEYCODE_DPAD_DOWN向下等等,详细的查看SDK中的onKeyDown   @Override    public boolean onKeyDown(int keyCode, KeyEvent msg) {         if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {}   }   整个游戏的控制流程就是上面这些,对于游戏的逻辑而言比较简单,这个贪食蛇并没有包含3D设计和类似Nokia的能量走廊、6边形轨迹,有空了我们一起来完善一个3D的贪食蛇游戏。

Android数据库SQLite使用方法 Android开发技术

  大多数过去做MIS或OA系统的可能都很熟悉数据库相关的操作,Android平台和Windows Mobile一样都支持本地的SQL数据处理,这点Android使用了比MySQL嵌入版更轻量级的SQLite,Google有关Android数据操作的方法提供一个高层的封装就是ContentProvider。一组数据操作可以使用ContentValues对象来完成度或写,ContentValues提供了put和get两种方法分别对应设置和读取,如果对于原始SQL语法比较了解还是建议使用更为灵活的raw执行语言比较快。   主要注意的是Android中使用的SQLite受数据库版本因素而限制,SQLiteDatabase是原始的数据库操作类,提供了createDatabase方法来创建一个新的数据库,最终保存为.db格式的文件,而已经存在的数据可以使用openDatabase方法直接打开,使用execSQL方法可以直接执行SQL语句,完成插入、更新、删除等等,而查询也可以使用本地的SQL语句直接完成,使用rawQuery方法即可,这样会返回一个Cursor对象,我们直接遍历Cursor使用movetoFisrt和movetoNext方法进行遍历查询。直接使用getString或getInt等方法获取每列的数据即可。   而ContentProvider方式比较简单,大家直接看Android SDK中的NoteList例子就很好理解了。

Android NDK之JNI使用例子 Android开发技术

  目前Android NDK只能编译出动态库.so文件,并不是能生成.apk文件,这里我们简单介绍下NDK中的Hello JNI列子。整个例子分Java和Native C两个部分。首先是我们常用的Java端调用部分。   package com.example.hellojni; import android.app.Activity;import android.widget.TextView;import android.os.Bundle; public class HelloJni extends Activity{    @Override    public void onCreate(Bundle savedInstanceState)    {        super.onCreate(savedInstanceState);         TextView  tv = new TextView(this);        tv.setText( stringFromJNI() ); //如果调用失败将会抛出 java.lang.UnsatisfiedLinkError异常        setContentView(tv);    } //注意下面的native关键字     public native String  stringFromJNI();     public native String  unimplementedStringFromJNI();      static {        System.loadLibrary("hello-jni"); //载入hello-jni库    }  } 需要注意的是这里必须设置SDK版本为1.5或以上版本即在androidmanifest.xml文件中指明<uses-sdk […]

Android的SoundPool类使用与利弊 Android开发技术

  在开发Android软件中我们可能经常需播放多媒体声音文件,一般使用MediaPlayer类但该类占用资源较多,对于游戏等应用可能不是很适合,这里Android123描述下SoundPool类。SoundPool类在SDK的android.media.SoundPool,顾名思义是声音池的意思。主要播放一些较短的声音片段,可以从程序的资源或文件系统加载,相对于MediaPlayer类可以做到使用较少的CPU资源和较短的反应延迟。 SoundPool和其他声音播放类相比,其特点是可以自行设置声音的品质、音量、播放比率等参等。并且它可以同时管理多个音频流,每个流都有独自的ID,对某个音频流的管理都是通过ID进行的。SoundPool基本使用方法为:   创建一个SoundPool对象:new SoundPool(int maxStreams, int streamType, int srcQuality);  从资源或者文件载入音频流: load(Context  context, int resId, int priority);  播放声音play (int soundID, float leftVolume, float rightVolume, int priority, int loop, float rate) import android.media.AudioManager;import android.media.SoundPool; public class android123 extends Activity {private SoundPool snd;private int hitOkSfx;    /** Called when the activity is first created. */    @Override    public […]

Android中文短信开发技巧 Android开发技术

  提起Android中文短信发送其实实现原理过去我们已经在 谈谈Android中文短信的实现一文讲述了,这里不再赘述。主要是构造PDU header,使用16bit的编码方式即可。   开发过程中需要实现: 1.使用Android 0.9 SDK,该版本的andrid.jar文件实现比较完善,文件大小在11MB左右比最终的Android 1.0 SDK的9MB大了不少。直接引入一个外部的Jar即可。其中0.9版SDK下载地址可以在 Android SDK 0.9 beta测试版发布和下载 该页找到。 2.主要实现就是通过 android.telephony.gsm.SmsMessage.SubmitPduandroid.internal.telephony.gsm.SmsRawData 3.  最终发送时使用 sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent) 或着是 sendMultipartTextMessage(String destinationAddress, String scAddress, ArrayList<String> parts, ArrayList<PendingIntent> sentIntents, ArrayList<PendingIntent> deliveryIntents)  不要忘了加入<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>权限,查看内容如图:

100% Secure Checkout

PayPal / MasterCard / Visa