android,Bitmap,自定义控件

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 双指缩放的实现探索

有如下事件使我们要用到的:

 

  • 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高,会先触发。

假如onTouch方法返回false会接着触发onTouchEvent,反之onTouchEvent方法不会被调用。

内置诸如click事件的实现等等都基于onTouchEvent,假如onTouch返回true,这些事件将不会被触发。

android获取根View的方法

getParent(获取上一级View)

getRootView

getWindow().getDecorView()

findViewById(android.R.id.content)

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

Android事件传递之子View和父View的那点事

文件数据流怎么转换成图片Android

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,分析与解决

posted @ 2017-10-26 09:44  米粥米  阅读(345)  评论(0编辑  收藏  举报