<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 93,  comments - 2,  trackbacks - 0
     
    java.lang.NullPointerException
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.AbsListView.obtainView(AbsListView.java:2298)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.ListView.measureHeightOfChildren(ListView.java:1263)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.ListView.onMeasure(ListView.java:1175)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.View.measure(View.java:16515)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.View.measure(View.java:16515)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.View.measure(View.java:16515)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.View.measure(View.java:16515)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.View.measure(View.java:16515)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.View.measure(View.java:16515)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.View.measure(View.java:16515)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.View.measure(View.java:16515)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.View.measure(View.java:16515)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.LinearLayout.measureVertical(LinearLayout.java:695)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.LinearLayout.onMeasure(LinearLayout.java:588)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.View.measure(View.java:16515)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5169)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2310)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.View.measure(View.java:16515)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1958)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1155)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1337)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1042)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5721)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.Choreographer.doFrame(Choreographer.java:544)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.os.Handler.handleCallback(Handler.java:733)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.os.Handler.dispatchMessage(Handler.java:95)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.os.Looper.loop(Looper.java:136)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at android.app.ActivityThread.main(ActivityThread.java:5050)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at java.lang.reflect.Method.invokeNative(Native Method)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at java.lang.reflect.Method.invoke(Method.java:515)
    11-26 10:05:25.363: E/AndroidRuntime(28212): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java)

    原因是:adapter中返回的時候convertView為null.
    posted @ 2014-11-26 13:40 Terry Zou 閱讀(252) | 評論 (0)編輯 收藏
    Exception:
        10-24 17:43:15.112: E/AndroidRuntime(11888): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.view.ViewGroup.addViewInner(ViewGroup.java:3596)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.view.ViewGroup.addView(ViewGroup.java:3449)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.support.v4.view.ViewPager.addView(ViewPager.java:1305)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.view.ViewGroup.addView(ViewGroup.java:3394)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.view.ViewGroup.addView(ViewGroup.java:3370)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at com.zhihe.xqsh.adapter.IndexTopPagerAdapter.instantiateItem(IndexTopPagerAdapter.java:72)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.support.v4.view.PagerAdapter.instantiateItem(PagerAdapter.java:110)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:833)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.support.v4.view.ViewPager.populate(ViewPager.java:1017)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.support.v4.view.ViewPager.populate(ViewPager.java:915)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.support.v4.view.ViewPager$3.run(ViewPager.java:245)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.view.Choreographer.doCallbacks(Choreographer.java:574)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.view.Choreographer.doFrame(Choreographer.java:543)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.os.Handler.handleCallback(Handler.java:733)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.os.Handler.dispatchMessage(Handler.java:95)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.os.Looper.loop(Looper.java:136)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at android.app.ActivityThread.main(ActivityThread.java:5050)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at java.lang.reflect.Method.invokeNative(Native Method)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at java.lang.reflect.Method.invoke(Method.java:515)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:805)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:621)
    10-24 17:43:15.112: E/AndroidRuntime(11888): at dalvik.system.NativeStart.main(Native Method)
    10-24 17:43:15.132: I/Process(11888): Sending signal. PID: 11888 SIG: 9

    原因:
        當圖片向左滑動的時候,之后執行instantiateItem方法,而不去執行刪除方法,所以出現上述異常
        所以在instantiateItem方法中執行刪除操作,如下:
        View child = mPageViewList.get(position);
    if(child.getParent()!=null){
    ((ViewPager)container).removeView(child);
    }
        注意,在此執行了刪除操作之后,把destroyItem方法中的刪除去掉,因為,如果不去掉向左滑動的時候,會顯示為空,原因如下:打印url是進行加載View,當加載完成之后會去執行destroyItem中的方法,所以,需要把destroyItem中的刪除去掉。
    10-24 17:49:14.452: W/(16419): ----zhihe---- IndextoppagerAdapter instantiateItem position:0
    10-24 17:49:14.452: W/(16419): ----zhihe---- IndextoppagerAdapter instantiateItem image:http://ys.rili.com.cn/images/image/201401/0111174780.jpg
    10-24 17:49:14.462: W/(16419): ----zhihe---- IndextoppagerAdapter destroyItem position:0
    posted @ 2014-10-24 17:53 Terry Zou 閱讀(1337) | 評論 (0)編輯 收藏
    http://blog.csdn.net/asmcvc/article/details/9948419

    舉例子:
    -optimizationpasses 5
    -dontusemixedcaseclassnames
    -dontskipnonpubliclibraryclasses
    -dontpreverify
    -verbose
    -dontwarn
    -dontskipnonpubliclibraryclassmembers
    -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
    -libraryjars libs/afinal-0.2.1-bin.jar
    -libraryjars libs/armeabi/libBaiduMapSDK_v3_1_0.so  #地圖相關的C++編譯的可執行文件(引擎)不要混淆
    -libraryjars libs/armeabi/liblocSDK4d.so                         #定位相關的C++編譯的可執行文件(引擎)不要混淆
    -libraryjars libs/afinal-0.2.1-bin.jar
    -libraryjars libs/android-support-v4.jar
    -libraryjars libs/android-support-v7-recyclerview.jar
    -libraryjars libs/apache_httpClient_full_v43.jar
    -libraryjars libs/support-annotations-21.0.0-rc1.jar
    -libraryjars libs/locSDK_4.2.jar
    -libraryjars libs/baidumapapi_v3_1_0.jar
    -keep class com.baidu.** { *; }   
    -keep class vi.com.gdi.bgl.android.**{*;}
    -keep public class * extends android.app.Fragment
    -keep public class * extends android.app.Activity
    -keep public class * extends android.app.Application
    -keep public class * extends android.app.Service
    -keep public class * extends android.content.BroadcastReceiver
    -keep public class * extends android.content.ContentProvider
    -keep public class * extends android.app.backup.BackupAgentHelper
    -keep public class * extends android.preference.Preference
    -keep public class * extends android.support.v4.**
    -keep public class com.android.vending.licensing.ILicensingService
    -keep class android.support.annotation.** { *; }
    -keep class org.apache.http43.** { *; }
    -keep class android.support.v7.widget.** { *; }
    -keep class net.tsz.afinal.** { *; }
    -keep class com.alibaba.fastjson.** { *; } 
    -keep class android.support.v4.** { *; }
    -keepclasseswithmembernames class * {
        native <methods>;
    }
    -keepclasseswithmembers class * {
        public <init>(android.content.Context, android.util.AttributeSet);
    }
    -keepclasseswithmembers class * {
        public <init>(android.content.Context, android.util.AttributeSet, int);
    }
    -keepclassmembers class * extends android.app.Activity {
       public void *(android.view.View);
    }
    -keepclassmembers enum * {
        public static **[] values();
        public static ** valueOf(java.lang.String);
    }
    -keepclassmembers class * implements java.io.Serializable {
        static final long serialVersionUID;
        private static final java.io.ObjectStreamField[] serialPersistentFields;
        private void writeObject(java.io.ObjectOutputStream);
        private void readObject(java.io.ObjectInputStream);
        java.lang.Object writeReplace();
        java.lang.Object readResolve();
    }
    -keep class * implements android.os.Parcelable {
      public static final android.os.Parcelable$Creator *;
    }
    posted @ 2014-10-21 11:37 Terry Zou 閱讀(256) | 評論 (0)編輯 收藏
    例子如下:
      1 File file = new File(filePath);
      2             if(file.exists()){
      3                 String END = "\r\n";
      4                 String PREFIX = "--" ;
      5                 String BOUNDARY =  UUID.randomUUID().toString();  //邊界標識   隨機生成
      6                 String CONTENT_TYPE = "multipart/form-data";   //內容類型
      7                 
      8                 InputStream inputStream = null;
      9                 FileInputStream fileStream = null;
     10                 DataOutputStream dos = null;
     11                 HttpURLConnection conn = null;
     12                 try {
     13                     URL url = new URL(Constant.URL_SECONDHAN_TAKEPHOTOATHAND);
     14                     conn = (HttpURLConnection) url.openConnection();
     15                     /*設置時間*/
     16                     conn.setReadTimeout(10*1000);
     17                     conn.setConnectTimeout(10*1000);
     18                     
     19                     /*允許Input,output,不使用Cache*/
     20                     conn.setDoInput(true);
     21                     conn.setDoOutput(true);
     22                     conn.setUseCaches(false);
     23                     
     24                     /*設置傳送的method=POST*/
     25                     conn.setRequestMethod("POST");
     26                     conn.setRequestProperty("Connection", "Keep-Alive");
     27                     conn.setRequestProperty("Charset", "UTF-8");
     28                     conn.setRequestProperty("Content-Type", CONTENT_TYPE + ";boundary=" + BOUNDARY); 
     29                     
     30                     /* 設置DataOutputStream */
     31                     dos = new DataOutputStream(conn.getOutputStream());
     32                     
     33                     StringBuffer sb = new StringBuffer();
     34                     sb.append(PREFIX);
     35                     sb.append(BOUNDARY);
     36                     sb.append(END);
     37                     /**
     38                      * 這里重點注意:
     39                      * name里面的值為服務器端需要key   只有這個key 才可以得到對應的文件
     40                      * filename是文件的名字,包含后綴名的   比如:abc.png  
     41                      */
     42                     sb.append("Content-Disposition: form-data; name=\"UpLoadFile\"; filename=\""+file.getName()+"\""+END); 
     43                     sb.append("Content-Type: application/x-zip-compressed; charset=utf-8"+END);
     44                     sb.append(END);
     45                     dos.write(sb.toString().getBytes());
     46                     
     47                     /*取得文件的FileInputStream*/
     48                     fileStream = new FileInputStream(file);
     49                     
     50                     /*設置每次寫入1024bytes*/
     51                     int bufferSize = 1024;
     52                     byte[] buffer = new byte[bufferSize];
     53                     int length = -1;
     54                     
     55                     /*從文件讀取數據至緩沖區*/
     56                     while((length=fileStream.read(buffer))!=-1){
     57                         dos.write(buffer,0,length);
     58                     }
     59                     dos.write(END.getBytes());
     60                     byte[] end_data = (PREFIX+BOUNDARY+PREFIX+END).getBytes();
     61                     dos.write(end_data);
     62                     dos.flush();
     63                     
     64                     /* 取得Response內容 */
     65                     InputStream is = conn.getInputStream();
     66                     int ch;
     67                     StringBuffer b =new StringBuffer();
     68                     while( ( ch = is.read() ) != -1 ){
     69                         b.append( (char)ch );
     70                     }
     71                     String result = b.toString();
     72                     
     73                 } catch (SocketTimeoutException e) {
     74                     AgUtils.log("", " upload SocketTimeoutException");
     75                     mHandler.sendEmptyMessage(4);
     76                     e.printStackTrace();
     77                 } catch (ConnectTimeoutException e) {
     78                     AgUtils.log("", " download ConnectTimeoutException");
     79                     mHandler.sendEmptyMessage(4);
     80                     e.printStackTrace();
     81                 } catch (UnknownHostException e) {
     82                     AgUtils.log("", " download UnknownHostException");
     83                     mHandler.sendEmptyMessage(4);
     84                     e.printStackTrace();
     85                 } catch (MalformedURLException e) {
     86                     AgUtils.log("", " download MalformedURLException");
     87                     mHandler.sendEmptyMessage(4);
     88                     e.printStackTrace();
     89                 } catch (ProtocolException e) {
     90                     AgUtils.log("", " ProtocolException");
     91                     e.printStackTrace();
     92                     mHandler.sendEmptyMessage(2);
     93                 } catch (IOException e) {
     94                     AgUtils.log("", " IOException");
     95                     mHandler.sendEmptyMessage(0);
     96                     e.printStackTrace();
     97                 } finally {
     98                     XqshService.this.sendBroadcast(new Intent(INTENT_UPLOAD_COMPLETE));
     99                     try {
    100                         if (fileStream != null) {
    101                             fileStream.close();
    102                         }
    103                         if (inputStream != null) {
    104                             inputStream.close();
    105                         }
    106                         if (dos != null) {
    107                             dos.close();
    108                         }
    109                         
    110                         if (conn != null) {
    111                             conn.disconnect();
    112                             conn = null;
    113                         }
    114                     } catch (IOException e) {
    115                         e.printStackTrace();
    116                     }
    117                 }
    118             }
    posted @ 2014-09-11 08:16 Terry Zou 閱讀(180) | 評論 (0)編輯 收藏
    1.建立FrameLayout,因為該布局方式只顯示下層內容,如:
     1 <FrameLayout
     2     xmlns:android="http://schemas.android.com/apk/res/android"
     3     android:layout_width="match_parent"
     4     android:layout_height="fill_parent">
     5     <LinearLayout
     6         android:layout_width="fill_parent"
     7         android:layout_height="fill_parent"
     8         android:orientation="vertical" 
     9         android:id="@+id/main"
    10         android:background="@color/white"
    11         >
    12         <LinearLayout 
    13             android:layout_width="fill_parent"
    14             android:layout_height="wrap_content"
    15             >
    16             <GridView
    17                 android:id="@+id/gridview_send"
    18                 android:layout_width="fill_parent"
    19                 android:layout_height="fill_parent"
    20                 android:layout_marginLeft="20dp"
    21                 android:layout_marginTop="40dp"
    22                 android:listSelector="@color/bule_overlay"
    23                 android:numColumns="4" >
    24                    </GridView>
    25         </LinearLayout>
    26         <ImageView 
    27             android:layout_width="fill_parent"
    28             android:layout_height="wrap_content"
    29             android:src="@drawable/service_public_diver"
    30             android:layout_marginLeft="20dp"
    31             android:layout_marginRight="20dp"
    32             android:layout_marginTop="40px"
    33             /> 
    34          <EditText
    35             android:id="@+id/issueContent"
    36             android:layout_width="fill_parent"
    37             android:layout_height="wrap_content"
    38             android:minLines="4"
    39             android:gravity="top"
    40             android:layout_marginLeft="20dp"
    41             android:layout_marginRight="20dp"
    42             android:layout_marginTop="30px"
    43             android:textColor="#e3e3e3"
    44             android:hint="請輸入內容"
    45             android:background="@null"
    46             android:textSize="46px"/>
    47          <ImageView 
    48             android:layout_width="fill_parent"
    49             android:layout_height="wrap_content"
    50             android:src="@drawable/service_public_diver"
    51             android:layout_marginLeft="20dp"
    52             android:layout_marginRight="20dp"
    53             android:layout_marginTop="40dp"
    54             /> 
    55     </LinearLayout>
    56     <LinearLayout 
    57         android:id="@+id/layerMask"
    58         android:layout_width="fill_parent"
    59         android:layout_height="fill_parent"
    60         android:orientation="vertical" 
    61         android:background="@drawable/common_title_back"
    62         android:visibility="gone">
    63      </LinearLayout>
    64 </FrameLayout>

    2.在layerMasK中添加view內容
        private LinearLayout layerMask;//遮罩層
      layerMask = (LinearLayout)contentView.findViewById(R.id.layerMask);
        addInnerLayout(R.layout.fragment_takephotoathand_layer,layerMask);
        //設置點擊不退出遮罩層
      layerMask.setOnTouchListener(new OnTouchListener(){  
                @Override  
                public boolean onTouch(View v, MotionEvent event) {  
                    return true;  
                }  
            });

        private void addInnerLayout(int layoutResID,LinearLayout view){
    LayoutInflater inflater = (LayoutInflater) ((Activity) mContext).getLayoutInflater();
    View CurView = inflater.inflate(layoutResID, null);
    LinearLayout.LayoutParams lineparam = new LinearLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
    RelativeLayout.LayoutParams.MATCH_PARENT);
    view.addView(CurView,lineparam);
    }
    3.控制顯示
        layerMask.setVisibility(View.VISIBLE);
    posted @ 2014-09-11 08:13 Terry Zou 閱讀(1241) | 評論 (0)編輯 收藏
    一. intent.setFlags()方法中的參數值含義:

        1.FLAG_ACTIVITY_CLEAR_TOP例如現在的棧情況為:A B C D 。D此時通過intent跳轉到B,如果這個intent添加FLAG_ACTIVITY_CLEAR_TOP標記,則棧情況變為:A B。如果沒有添加這個標記,則棧情況將會變成:A B C D B。也就是說,如果添加了FLAG_ACTIVITY_CLEAR_TOP標記,并且目標Activity在棧中已經存在,則將會把位于該目標activity之上的activity從棧中彈出銷毀。這跟上面把B的Launch mode設置成singleTask類似。簡而言之,跳轉到的activity若已在棧中存在,則將其上的activity都銷掉。

        2.FLAG_ACTIVITY_NEW_TASK:例如現在棧1的情況是:A B C。C通過intent跳轉到D,并且這個intent添加了FLAG_ACTIVITY_NEW_TASK標記,如果D這個Activity在Manifest.xml中的聲明中添加了Task affinity,系統首先會查找有沒有和D的Task affinity相同的task棧存在,如果有存在,將D壓入那個棧,如果不存在則會新建一個D的affinity的棧將其壓入。如果D的Task affinity默認沒有設置,則會把其壓入棧1,變成:A B C D,這樣就和不加FLAG_ACTIVITY_NEW_TASK標記效果是一樣的了。注意如果試圖從非activity的非正常途徑啟動一個activity(例見下文“intent.setFlags()方法中參數的用例”),比如從一個service中啟動一個activity,則intent比如要添加FLAG_ACTIVITY_NEW_TASK標記(編者按:activity要存在于activity的棧中,而非activity的途徑啟動activity時必然不存在一個activity的棧,所以要新起一個棧裝入啟動的activity)。簡而言之,跳轉到的activity根據情況,可能壓在一個新建的棧中。

        3.FLAG_ACTIVITY_NO_HISTORY:例如現在棧情況為:A B C。C通過intent跳轉到D,這個intent添加FLAG_ACTIVITY_NO_HISTORY標志,則此時界面顯示D的內容,但是它并不會壓入棧中。如果按返回鍵,返回到C,棧的情況還是:A B C。如果此時D中又跳轉到E,棧的情況變為:A B C E,此時按返回鍵會回到C,因為D根本就沒有被壓入棧中。簡而言之,跳轉到的activity不壓在棧中。

        4.FLAG_ACTIVITY_SINGLE_TOP:和Activity的Launch mode的singleTop類似。如果某個intent添加了這個標志,并且這個intent的目標activity就是棧頂的activity,那么將不會新建一個實例壓入棧中。簡而言之,目標activity已在棧頂則跳轉過去,不在棧頂則在棧頂新建activity。

    二.intent.setFlags()方法中參數的用例:

    很多人使用startActivity時候,會碰到如下的異常:
    Caused by: android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity  context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
    都知道,Context中有一個startActivity方法,Activity繼承自Context,重載了startActivity方法。如果使用Activity的startActivity方法,不會有任何限制,而如果使用Context的startActivity方法的話,就需要開啟一個新的task(編者按:參見一.2.的編者按),遇到上面那個異常的,都是因為使用了Context的startActivity方法。解決辦法是:Java代碼中加一個flag,即intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)。這樣就可以在新的task里面啟動這個Activity了。

    posted @ 2014-05-28 17:43 Terry Zou 閱讀(151) | 評論 (0)編輯 收藏
         摘要:     轉自:http://musicbox95351.iteye.com/blog/868526    比如項目為一個UserServlet,主要分三步    1 日志輸出文件log4j.xml的配置。     2 加載日志配置...  閱讀全文
    posted @ 2014-05-26 11:13 Terry Zou 閱讀(1420) | 評論 (0)編輯 收藏

    - 概述NFC標簽和四類標簽的定義。


        近場通訊技術的關鍵要素之一,在于NFC裝置與被動式NFC標簽溝通的能力。NFC技術的這一特征,是許多應用成為可能的關鍵
    NFC標簽正在被大量生產、部署在全球若干個領域。部署的標簽已逾百萬,隨著該技術流行,NFC標簽將滲入到很多新的領域。
    預測到未來將有大量標簽得到使用,標簽的定義必須清晰,已確保不同制造商的標簽與設備達到兼容。



    - NFC標簽基礎


        NFC標簽是被動式裝置,可用來與主動式NFC裝置(主動式NFC讀寫器)通信。標簽可用于應用之內,例如在海報、以及其他儲存小量數據并傳輸到主動式NFC裝置的場合。在海報中,起作用的部分可用來做主動設備的接觸點。
        NFC標簽所含儲存的數據可為任何形式,但一般是用來貯存網址(URL)以供NFC裝置找到進一步的信息。所需數據量很少,故可使用NFC標簽。

        為了定義主動式NFC讀寫器與被動式標簽之間的通信,NFC論壇在2006年6月推出了其第一個標準技術架構和NFC合規裝置的標準,包括:NFC數據交換格式(NDEF)、三種記錄類型定義(RTD),用于智能海報、文本、互聯網資源讀取應用。


    - NFC標簽類型定義


        定義的基本標簽類型有四種,以1至4來標識,各有不同的格式與容量。這些標簽類型格式的基礎是:ISO 14443的A與B類型、Sony FeliCa,前者是非接觸式智能卡的國際標準,而后者符合ISO 18092被動式通訊模式標準。

        保持NFC標簽盡可能簡單的優勢是:在很多場合,標簽可為一次性使用,例如在海報中壽命較短的場合。


    各種標簽的定義如下:



    • 第1類標簽(Tag 1 Type):此類型基于ISO14443A標準。此類標簽具有可讀、重新寫入的能力,用戶可將其配置為只讀。存儲能力為96字節,用來存網址URL或其他小量數據富富有余。然而,內存可被擴充到2k字節。此類NFC標簽的通信速度為106 kbit/s。此類標簽簡潔,故成本效益較好,適用于許多NFC應用。


    • 第2類標簽(Tag 2 Type):此類標簽也是基于ISO14443A,具有可讀、重新寫入的能力,用戶可將其配置為只讀。其基本內存大小為48字節,但可被擴充到2k字節。通信速度也是106 kbit/s。


    • 第3類標簽(Tag 3 Type):此類標簽基于Sony FeliCa體系。目前具有2k字節內存容量,數據通訊速度為212 kbit/s。故此類標簽較為適合較復雜的應用,盡管成本較高。


    • 第4類標簽(Tag 4 Type):此類標簽被定義為與ISO14443A、B標準兼容。制造時被預先設定為可讀/可重寫、或者只讀。內存容量可達32k字節,通信速度介于106 kbit/s和424 kbit/s之間。

        從上述不同標簽類型的定義可以看出,前兩類與后兩類在內存容量、構成方面大不相同。故它們的應用不太可能有很多重疊。

        第1與第2類標簽是雙態的,可為讀/寫或只讀。第3與第4類則是只讀,數據在生產時寫入或者通過特殊的標簽寫入器來寫入。


    -NFC標簽運行

        NFC標簽是無需電源的被動裝置。在使用時,用戶以具有NFC功能的設備與其接觸。標簽從讀寫器獲得很小的電源驅動標簽的電路,把小量信息傳輸到讀寫器。



    標簽內存里的數據被傳至帶有NFC功能的設備。盡管數據量很小,卻可能是把設備導向到某個網址(URL)、或是小量文本、其他數據。



    -NFC標簽設計與制造



    標簽設計與制造需要考慮很多方面。標簽是為了大量、極低成本制造,同時保持性能。在設計標簽時,下面是需要考慮的幾個關鍵的性能參數與要素:




    • 讀取速度:因為需要在兩個NFC裝置接近時傳輸標簽所含的所有數據,故速度很重要。如果標簽傳數據較慢,就有不能完全傳輸、可靠性差的危險。結果影響到用戶,不明白該技術的用戶,假如不得不重復多次才能奏效就會對其喪失信心。第一類NFC標簽允許所有數據整塊(block)傳輸,保持了標簽的讀取性能。


    • 晶片尺寸:在標簽設計中,晶片尺寸(die size)具有特別的重要性。尺寸較小,則成本較低、標簽也不那么顯眼(對在海報中使用較為重要)。內存較小自然導致晶片尺寸較小。


    • 單元價格:鑒于NFC標簽的目標應用是極低成本的(例如用于智能海報),單位價格是標簽設計極其重要的一個因素。在這里,成本至為關鍵。標簽成本受一系列因素影響,包括內存大小和所含附加特征帶來的集成電路復雜性。把內存與特征盡可能簡化,成本就能壓低。
      當NFC體系真正起飛時,標簽生產量可能達到數十億的規模;需要精心設計,以在成本與性能之間取得正確的平衡。
    posted @ 2014-05-16 10:33 Terry Zou 閱讀(209) | 評論 (0)編輯 收藏
    問題:按照NDEF消息格式來解析下列Hex串?

    D1 02 1F 53 70 91 01 0E 54 02 
    65 6E 68 65 6C 6C 6F 20 77 6F 
    72 6C 64 51 01 09 55 01 73 69 
    6E 61 2E 63 6F 6D

    解答:
        
    (1)NDEF記錄格式如下,
       
        
        Byte 0: D1
        0xD1 = 11010001B,對應的標志位如下:
        MB(Message Begin) = 1,說明這是首記錄
        ME(Message End) = 1,說明這是末記錄(說明消息只有一個記錄)
        CF(Chunk Flag) = 0,說明記錄未被切塊
        SR(Short Record) = 1,說明這是短記錄,PAYLOAD_LENGTH 占1字節
        IL(ID_LENGTH field is present) = 0,說明沒有 ID_LENGTH 和 ID 域
        TNF(Type Name Format) = 1,說明TYPE類型是 NFC Forum well-known type [NFC RTD],
         下表是TNF編碼對應表
        
            因為SR=1且IL=0,所以NDEF記錄可簡化為如下結構
            
        Byte 1: 02
        TYPE_LENGTH = 2,TYPE域長度為2

        Byte 2: 1F
        PAYLOAD_LENGTH = 0x1F,Payload域長度為31

        Byte 3-4: 53 70
        TYPE = "Sp",因為TYPE域長度為2,所以此處TYPE取2個字節

        此后全是PAYLOAD域的內容,因為TYPE="Sp",所以需要使用的Spec是“Smart Poster Record Type Definition”

       (2)智能海報的記錄類型其實也是一個NDEF消息。沒錯,NDEF記錄的PAYLOAD域可以存放任何東西,包括嵌套NDEF消息。

        智能海報的內容可以包括標題、URI、動作、圖標、大小、類型等記錄,其中URI記錄是必須有的,其他的可選,次序無所謂。

            1)現在將智能海報的內容貼過來,如下

        91 01 0E 54 02 65 6E 68 65 6C 
        6C 6F 20 77 6F 72 6C 64 51 01 
        09 55 01 73 69 6E 61 2E 63 6F 
        6D

        Byte 0: 91
        0x91 = 10010001B,對應的標志位如下:
        MB = 1,說明這是首記錄
        ME = 0,說明后面還有記錄
        CF = 0,說明記錄未被切塊
        SR = 1,說明這是短記錄,PAYLOAD_LENGTH 占1字節
        IL = 0,說明沒有 ID_LENGTH 和 ID 域
        TNF = 1,說明TYPE類型是 NFC Forum well-known type

        Byte 1: 01
        TYPE_LENGTH = 1,TYPE域長度為1

        Byte 2: 0E
        PAYLOAD_LENGTH = 0x0E,Payload域長度為14

        Byte 3: 54
        TYPE = "T",說明是文本記錄類型,適用“Text Record Type Definition”

        Byte 4-17: 02 65 6E 68 65 6C 6C 6F 20 77 6F 72 6C 64 
        這是文本記錄的內容

        下面對“02 65 6E 68 65 6C 6C 6F 20 77 6F 72 6C 64”按照文本記錄格式解碼。

        文本記錄格式如下:
        
            
        Byte 0: 02
        Status = 2,由下表可知,IANA語言碼長度=2
        
        Byte 1-2: 65 6E
        ISO/IANA語言碼 = “en”,編碼為US-ASCII碼

        Byte 3-13:68 65 6C 6C 6F 20 77 6F 72 6C 64
        按照ASCII碼解碼可得“hello world”

        至此,對海報內容的第一條NDEF記錄解碼完成,接下來是對剩余內容解碼。

            2)剩余內容為“51 01 09 55 01 73 69 6E 61 2E 63 6F 6D”,同樣也是按照NDEF記錄來解碼。

        Byte 0: 51
        0x91 = 01010001B,對應的標志位如下:
        MB = 0,說明這不是首記錄
        ME = 1,說明這是末記錄
        CF = 0,說明記錄未被切塊
        SR = 1,說明這是短記錄,PAYLOAD_LENGTH 占1字節
        IL = 0,說明沒有 ID_LENGTH 和 ID 域
        TNF = 1,說明TYPE類型是 NFC Forum well-known type

        Byte 1: 01
        TYPE_LENGTH = 1,TYPE域長度為1

        Byte 2: 09
        PAYLOAD_LENGTH = 0x09,Payload域長度為9

        Byte 3: 55
        TYPE = "U",說明是URI記錄類型,適用“URI Record Type Definition”

        Byte 4-12: 01 73 69 6E 61 2E 63 6F 6D
        這是URI記錄的內容

        URI記錄內容格式如下:
            
            
        Byte 0: 01
        ID碼 = 1,由下表可知,對應的協議是“http://www.”
         
                        
                    
        Byte 1-8: 73 69 6E 61 2E 63 6F 6D
        按照UTF-8格式解碼可得:“sina.com”

        至此,整個NDEF消息解碼完畢。

        回顧一下吧,整個結構的解碼將其如下分解:

        D1 02 1F 53 70                                        <-- 智能海報
        91 01 0E 54 02 65 6E 68 65 6C 6C 6F 20 77 6F 72 6C 64 <-- 文本
        51 01 09 55 01 73 69 6E 61 2E 63 6F 6D                <-- URI

    posted @ 2014-05-14 16:17 Terry Zou 閱讀(1841) | 評論 (0)編輯 收藏
         摘要: AsyncTask和Handler對比 1 ) AsyncTask實現的原理,和適用的優缺點 AsyncTask,是android提供的輕量級的異步類,可以直接繼承AsyncTask,在類中實現異步操作,并提供接口反饋當前異步執行的程度(可以通過接口實現UI進度更新),最后反饋執行的結果給UI主線程. 使用的優點: l  簡單,快捷 l  過程可控  &n...  閱讀全文
    posted @ 2014-05-08 17:25 Terry Zou 閱讀(176) | 評論 (0)編輯 收藏
    僅列出標題
    共8頁: 上一頁 1 2 3 4 5 6 7 8 下一頁 
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    相冊

    收藏夾

    Java

    搜索

    •  

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲AV日韩AV无码污污网站| av电影在线免费看| 日韩亚洲国产二区| 美女在线视频观看影院免费天天看| 久久久久亚洲精品日久生情 | 99在线视频免费观看视频| 亚洲成a人片在线不卡一二三区 | 99久久国产精品免费一区二区 | 亚洲一区二区成人| 四色在线精品免费观看| 色www永久免费| 亚洲欧美国产精品专区久久| 国产国拍亚洲精品福利 | 无码国模国产在线观看免费| 国产在线观看免费视频软件| 成人亚洲国产va天堂| 亚洲午夜国产精品无码老牛影视| 九九精品免费视频| 永久免费av无码网站yy| 亚洲日韩精品无码AV海量| 国产午夜亚洲精品理论片不卡| 四虎影视在线影院在线观看免费视频| 亚洲精品宾馆在线精品酒店| 亚洲成AV人片在线观看| 日本成人在线免费观看| 99爱视频99爱在线观看免费| 一区二区三区免费高清视频| 亚洲一卡2卡3卡4卡乱码 在线| 亚洲成a人片77777kkkk| 国产一区二区三区在线免费观看 | 一级特级aaaa毛片免费观看| 亚洲国产人成在线观看| 亚洲高清专区日韩精品| 免费v片在线观看| 国产一卡2卡3卡4卡2021免费观看| 在线免费观看h片| 日韩精品无码免费视频| 亚洲爆乳成av人在线视菜奈实 | 亚在线观看免费视频入口| 激情吃奶吻胸免费视频xxxx| 中文字幕乱码亚洲精品一区|