android,Bitmap,自定義控件 Android自定義控件系列(一)—Button七十二變 Android中View轉換爲Bitmap及getDrawingCache=null的解決方法 An

Custom view overrides onTouchEvent but not performClick

Android Drawable 對象複製、拷貝

Android給控件添加邊線的各類辦法

Android自定義控件系列(一)—Button七十二變 

android中惡心的getDrawingCache

Android中View轉換爲Bitmap及getDrawingCache=null的解決方法 good

public static Bitmap convertViewToBitmap(View view){
      view.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
        view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
        view.buildDrawingCache();
        Bitmap bitmap = view.getDrawingCache();

     return bitmap;
}

Android中用手勢的雙擊事件實現圖片單擊放大效果

Android手勢操做(雙擊,長按,滑動,滾動,多點觸控) good

個人Android筆記(十三)——Muilti-touch 雙指縮放的實現探索

有以下事件使咱們要用到的:html

 

  • MotionEvent.ACTION_DOWN:在第一個點被按下時觸發
  • MotionEvent.ACTION_UP:當屏幕上惟一的點被放開時觸發
  • MotionEvent.ACTION_POINTER_DOWN:當屏幕上已經有一個點被按住,此時再按下其餘點時觸發。
  • MotionEvent.ACTION_POINTER_UP:當屏幕上有多個點被按住,鬆開其中一個點時觸發(即非最後一個點被放開時)。
  • MotionEvent.ACTION_MOVE:當有點在屏幕上移動時觸發。值得注意的是,因爲它的靈敏度很高,而咱們的手指又不可能徹底靜止(即便咱們感受不到移動,但其實咱們的手指也在不停地抖動),因此實際的狀況是,基本上只要有點在屏幕上,此事件就會一直不停地被觸發。

Android MotionEvent詳解

android屏幕touch只響應DOWN事件

Android View的onTouchEvent和OnTouch區別

onTouchListener的onTouch方法優先級比onTouchEvent高,會先觸發。java

假如onTouch方法返回false會接着觸發onTouchEvent,反之onTouchEvent方法不會被調用。android

內置諸如click事件的實現等等都基於onTouchEvent,假如onTouch返回true,這些事件將不會被觸發。數組

android獲取根View的方法

getParent(獲取上一級View)app

getRootViewide

getWindow().getDecorView() post

findViewById(android.R.id.content) ui

((ViewGroup)findViewById(android.R.id.content)).getChildAt(0)url

Android事件傳遞之子View和父View的那點事

文件數據流怎麼轉換成圖片Androidspa

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
/** 
* 將二進制流轉換成圖片文件 
* @author 晚風工做室 www.soservers.com 
* /
public class ImgErToFileUtil 
{ 
    /* 
    * 將接收的字符串轉換成圖片保存 * 
    @param imgStr 二進制流轉換的字符串 
    * @param imgPath 圖片的保存路徑 
    * @param imgName 圖片的名稱 
    * @return * 1:保存正常 * 0:保存失敗 
    */

    public static int saveToImgByStr(String imgStr,String imgPath,String imgName)
    {
        try
        { 
            System.out.println("===imgStr.length()====>" + imgStr.length() + "=====imgStr=====>" + imgStr);
        } 
        catch (Exception e) 
        {
             e.printStackTrace();
        } 
        int stateInt = 1;
         if(imgStr != null && imgStr.length() > 0)
         { 
             try 
             { 
             // 將字符串轉換成二進制,用於顯示圖片 
             // 將上面生成的圖片格式字符串 imgStr,還原成圖片顯示 
             byte[] imgByte = hex2byte( imgStr ); 
             InputStream in = new ByteArrayInputStream(imgByte); 
             File file=new File(imgPath,imgName);//能夠是任何圖片格式.jpg,.png等 
             FileOutputStream fos=new FileOutputStream(file);
             byte[] b = new byte[1024]; 
             int nRead = 0; 
             while ((nRead = in.read(b)) != -1) 
             {
               fos.write(b, 0, nRead); 
             } 
             fos.flush();
             fos.close(); 
             in.close(); 
            }
            catch (Exception e) 
             {
                stateInt = 0; e.printStackTrace();
             } 
             finally { }
        } 
                
        return stateInt;
    } 

     /* 
     * 將二進制轉換成圖片保存 
     * @param imgStr 二進制流轉換的字符串
      * @param imgPath 圖片的保存路徑 
      * @param imgName 圖片的名稱
       * @return 
       * 1:保存正常 
       * 0:保存失敗
     */ 
        public static int saveToImgByBytes(File imgFile,String imgPath,String imgName)
        { 
            int stateInt = 1; 
            if(imgFile.length() > 0)
            { 
                try 
                    {
                    File file=new File(imgPath,imgName);//能夠是任何圖片格式.jpg,.png等 
                    FileOutputStream fos=new FileOutputStream(file); 
                    FileInputStream fis = new FileInputStream(imgFile); 
                    byte[] b = new byte[1024]; 
                    int nRead = 0; 
                    while ((nRead = fis.read(b)) != -1) 
                    {
                        fos.write(b, 0, nRead); } 
                        fos.flush(); 
                        fos.close(); 
                            fis.close(); 
                        } 
                    catch (Exception e) 
                    {
                         stateInt = 0;
                         e.printStackTrace();
                    } 
                    finally
                    { 
                    } 
           } 
           return stateInt; 
        } 
         /* 
         * 二進制轉字符串 * @param b * @return
          */ 

         public static String byte2hex(byte[] b) // 二進制轉字符串
          { 
              StringBuffer sb = new StringBuffer(); 
              String stmp = ""; 
              for (int n = 0; n < b.length; n++)
               { 
                   stmp = Integer.toHexString(b[n] & 0XFF);
                if (stmp.length() == 1)
                 { 
                     sb.append("0" + stmp);
                 } 
                 else
                 {
                      sb.append(stmp);
                 } 
            } 
            return sb.toString(); 
          } 
              
           /* * 字符串轉二進制 * @param str 要轉換的字符串 * @return 轉換後的二進制數組 */ 
              public static byte[] hex2byte(String str) 
              { 
                  // 字符串轉二進制
               if (str == null) 
                   return null; 
               str = str.trim();
               int len = str.length(); 
               if (len == 0 || len % 2 == 1) 
                    return null; 
               byte[] b = new byte[len / 2]; 
               try
                { 
                    for (int i = 0; i < str.length(); i += 2) 
                    { 
                        b[i / 2] = (byte) Integer .decode("0X" + str.substring(i, i + 2)).intValue(); 
                    } 
                    return b; 
                } 
                catch (Exception e)
                 { 
                     return null; 
                 } 
             } 

     }

 

Android圖片二進制與Bitmap、Drawable之間的轉換

 Android圖片縮放,壓縮總結(inSampleSize,Matrix比較)

Bitmap基本概念及在Android4.4系統上使用BitmapFactory的注意事項

BitmapFactory.decodeByteArray() 返回null,分析與解決

相關文章
相關標籤/搜索