<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      圖片的畫畫板

      布局文件

       1 <?xml version="1.0" encoding="utf-8"?>
       2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
       3     android:layout_width="fill_parent"
       4     android:layout_height="fill_parent"
       5     android:orientation="vertical" >
       6 
       7 
       8     <Button
       9         android:onClick="selectImage"
      10         android:id="@+id/button1"
      11         android:layout_width="fill_parent"
      12         android:layout_height="wrap_content"
      13         android:text="選擇圖片" />
      14     <Button
      15         android:onClick="saveImage"
      16         android:id="@+id/button1"
      17         android:layout_width="fill_parent"
      18         android:layout_height="wrap_content"
      19         android:text="保存圖片" />
      20     <ImageView
      21         android:layout_width="wrap_content"
      22         android:layout_height="wrap_content"
      23         android:scaleType="centerInside"
      24         android:id="@+id/iv" />
      25 </LinearLayout>

      項目代碼

        1 package cn.itcast.paint;
        2 
        3 import java.io.File;
        4 import java.io.FileNotFoundException;
        5 import java.io.FileOutputStream;
        6 import java.io.InputStream;
        7 
        8 import android.app.Activity;
        9 import android.content.Intent;
       10 import android.graphics.Bitmap;
       11 import android.graphics.BitmapFactory;
       12 import android.graphics.Bitmap.CompressFormat;
       13 import android.graphics.BitmapFactory.Options;
       14 import android.graphics.Canvas;
       15 import android.graphics.Color;
       16 import android.graphics.Matrix;
       17 import android.graphics.Paint;
       18 import android.graphics.Rect;
       19 import android.net.Uri;
       20 import android.os.Bundle;
       21 import android.os.Environment;
       22 import android.view.Display;
       23 import android.view.MotionEvent;
       24 import android.view.View;
       25 import android.view.View.OnTouchListener;
       26 import android.view.WindowManager;
       27 import android.widget.ImageView;
       28 import android.widget.Toast;
       29 
       30 public class DemoActivity extends Activity {
       31     private ImageView iv;
       32     private Bitmap alterBitmap;
       33     private Canvas canvas;
       34     private Paint paint;
       35     private WindowManager wm;
       36     private Display  display;
       37     
       38     @Override
       39     public void onCreate(Bundle savedInstanceState) {
       40         super.onCreate(savedInstanceState);
       41         setContentView(R.layout.main);
       42         iv = (ImageView) findViewById(R.id.iv);
       43         paint = new Paint();
       44         paint.setColor(Color.GREEN);
       45         paint.setStrokeWidth(10);
       46         wm = getWindowManager();
       47         //獲取手機的屏幕寬高
       48         display = wm.getDefaultDisplay();
       49         iv.setOnTouchListener(new OnTouchListener() {
       50             int startx;
       51             int starty;
       52             @Override
       53             public boolean onTouch(View v, MotionEvent event) {
       54                 switch (event.getAction()) {
       55                 case MotionEvent.ACTION_DOWN://手指第一次觸摸屏幕
       56                     startx = (int) event.getX();
       57                     starty = (int) event.getY();
       58                     
       59                     break;
       60                 case MotionEvent.ACTION_MOVE: //手指在imageview上中移動
       61                     int x = (int) event.getX();
       62                     int y = (int) event.getY();
       63                     canvas.drawLine(startx, starty, x, y, paint);
       64                     startx = (int) event.getX();
       65                     starty = (int) event.getY();
       66                     iv.invalidate();
       67                     break;
       68                 }
       69                 
       70                 
       71                 
       72                 return true;
       73             }
       74         });
       75     }
       76     
       77     
       78     public void selectImage(View view){
       79         Intent intent = new Intent();
       80         intent.setAction(Intent.ACTION_PICK);
       81         intent.addCategory("android.intent.category.DEFAULT");
       82         intent.setType("image/*");
       83         startActivityForResult(intent, 0);
       84     }
       85     
       86     
       87     @Override
       88     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
       89         try {
       90             if (data != null) {
       91                 // 得到點擊圖片的uri
       92                 Uri uri = data.getData();
       93                 //對 要加載的圖片進行縮放
       94                 //1.得到圖片的寬度和高度.
       95                 //由于我們只想得到圖片的寬度和高度,這個時候 只需要解析圖片的頭信息
       96                 BitmapFactory.Options opts = new Options();
       97                 opts.inJustDecodeBounds = true;//讓 bimapfactory假的解析這個位圖,只獲取位圖的邊框信息
       98                 InputStream is = getContentResolver().openInputStream(uri);
       99                 BitmapFactory.decodeStream(is, new Rect(), opts);
      100                 
      101                 int bitmapHeight =     opts.outHeight;
      102                 int bitmapWidth = opts.outWidth;
      103                 
      104                 int windowHeight = display.getHeight();
      105                 int windowWidth = display.getWidth();
      106                 //獲取水平和垂直方向的縮放比
      107                 int scaley = bitmapHeight / windowHeight;
      108                 int scalex = bitmapWidth / windowWidth;
      109                 
      110                 
      111                 
      112                 if(scalex>scaley&&scaley>1){
      113                     opts.inSampleSize = scalex;
      114                 }
      115                 if(scaley>scalex&&scalex>1){
      116                     opts.inSampleSize = scaley;
      117                 }
      118                 opts.inJustDecodeBounds = false;// 由于已經得到了縮放比例 ,讓位圖工廠真正的解析這個位圖
      119                 // 由于前面 我們已經解析了這個輸入流, 需要重新初始化這個輸入流
      120                 is = getContentResolver().openInputStream(uri);
      121                 Bitmap bitmap =  BitmapFactory.decodeStream(is, new Rect(), opts);
      122                 System.out.println("位圖的高度:"+bitmap.getHeight());
      123                 System.out.println("位圖的寬度:"+bitmap.getWidth());
      124                 
      125                 
      126                 alterBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), bitmap.getConfig());
      127                 
      128                 canvas = new Canvas(alterBitmap);
      129                 
      130                 canvas.drawBitmap(bitmap, new Matrix(), new Paint());
      131                 
      132                 //設置的是原圖在內存中的拷貝
      133                 iv.setImageBitmap(alterBitmap);
      134             }
      135         } catch (Exception e) {
      136             e.printStackTrace();
      137         }
      138         super.onActivityResult(requestCode, resultCode, data);
      139     }
      140     
      141     public void saveImage(View view){
      142         try {
      143             File file = new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".jpg");
      144             FileOutputStream stream = new FileOutputStream(file);
      145             alterBitmap.compress(CompressFormat.JPEG, 100, stream);
      146             Toast.makeText(this, "保存成功", 1).show();
      147             // 模擬系統發送一個 sd卡掛載的廣播 
      148             Intent intent = new Intent();
      149             intent.setAction(Intent.ACTION_MEDIA_MOUNTED);
      150             intent.setData(Uri.parse("file:"+Environment.getExternalStorageDirectory().getAbsolutePath()));
      151             sendBroadcast(intent); 
      152         } catch (FileNotFoundException e) {
      153             Toast.makeText(this, "保存失敗", 1).show();
      154             e.printStackTrace();
      155         }
      156     }
      157 }

       

      posted @ 2013-01-27 16:22  王世楨  閱讀(452)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产精品中文字幕观看| 精品人妻人人做人人爽夜夜爽| 91精品国产午夜福利| 自拍偷自拍亚洲精品播放| 成人午夜在线观看日韩| 欧美色丁香| 中文无码热在线视频| 国产免费午夜福利在线观看| 日韩av一区二区三区在线| aaa少妇高潮大片免费看| 高潮迭起av乳颜射后入| 国产综合色产在线视频欧美 | 扎兰屯市| 在线a亚洲老鸭窝天堂| 亚洲中文字幕一区二区| 久久久亚洲精品无码| 日韩一区二区三区在线视频| 亚洲熟妇一区二区三个区| 国产AV福利第一精品| 国产精品一码在线播放| 好男人日本社区www| 人妻18毛片A级毛片免费看| 亚洲成人动漫av在线| 亚洲日韩国产精品第一页一区 | 国产情侣激情在线对白| 国产精品 无码专区| 国内精品无码一区二区三区| 国产精品麻豆中文字幕| 日韩在线视频一区二区三| 国产嫩草精品网亚洲av| 熟妇激情一区二区三区| 亚洲国产精品一区二区第一页| 在线 欧美 中文 亚洲 精品| 亚洲自偷自拍熟女另类| 91色老久久精品偷偷蜜臀| 久久国产成人av蜜臀| 亚洲精品国精品久久99热| 98久久人妻少妇激情啪啪| 精品乱码一区二区三四五区| 精品人妻伦九区久久aaa片69| 久久99精品网久久|