真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Android如何制作畫畫板

這篇文章主要為大家展示了“Android如何制作畫畫板”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“Android如何制作畫畫板”這篇文章吧。

創(chuàng)新互聯(lián)建站網(wǎng)絡(luò)公司擁有十年的成都網(wǎng)站開發(fā)建設(shè)經(jīng)驗,成百上千客戶的共同信賴。提供網(wǎng)站制作、成都做網(wǎng)站、網(wǎng)站開發(fā)、網(wǎng)站定制、賣鏈接、建網(wǎng)站、網(wǎng)站搭建、成都響應(yīng)式網(wǎng)站建設(shè)公司、網(wǎng)頁設(shè)計師打造企業(yè)風(fēng)格,提供周到的售前咨詢和貼心的售后服務(wù)

本文實例為大家分享了Android畫畫板展示的具體代碼,供大家參考,具體內(nèi)容如下

main.xml布局



  

  
    

main布局

/*
畫板canvas  畫板paint 手勢識別器
整體思路:因為我是圖片是作畫,實際是對圖片進(jìn)行修改,起到畫圖的效果
1.原圖,白紙,畫筆,畫板
2.根據(jù)手勢識別進(jìn)行作畫

 */
public class MainActivity extends AppCompatActivity {
private Bitmap bitmap;
  private Canvas canvas;
private ImageView iv;
  private int startx;
  private int starty;
  private Paint paint;
  private Bitmap bmSrc;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //加載原圖
    bmSrc = BitmapFactory.decodeResource(getResources(), R.drawable.bg);
    //創(chuàng)建白紙,寬,高,圖片的參數(shù)
     bitmap = Bitmap.createBitmap(bmSrc.getWidth(), bmSrc.getHeight(), bmSrc.getConfig());
    //創(chuàng)建畫板,參數(shù)是白紙對象
    canvas = new Canvas(bitmap);
    //創(chuàng)建畫筆
    paint = new Paint();
    //在紙上作畫
    iv=(ImageView)findViewById(R.id.iv);
    canvas.drawBitmap(bmSrc,new Matrix(), paint);
    //-----------------手勢識別器和畫筆結(jié)合的知識-------------------
  //給控件設(shè)置手勢適配器,可以得到用戶在這個控件上所做的手勢
    iv.setOnTouchListener(new View.OnTouchListener() {


      //當(dāng)用戶手在這個控件時,指的就是用戶的手對控件滑動,按下,松開的三種場景,自動回調(diào)
      @Override
      public boolean onTouch(View view, MotionEvent motionEvent) {
        switch (motionEvent.getAction()){
          case MotionEvent.ACTION_DOWN://按下時回調(diào)一次
            //獲取用戶手指按下時的坐標(biāo)
            startx = (int) motionEvent.getX();
            starty = (int) motionEvent.getY();
            break;
          case MotionEvent.ACTION_MOVE://手指滑動時,不停地調(diào)用
            int newx = (int) motionEvent.getX();
            int newy = (int) motionEvent.getY();
            //在背景圖畫線
            canvas.drawLine(startx,starty,newx,newy, paint);
            startx=newx;
            starty=newy;
            iv.setImageBitmap(bitmap);
            break;
          case MotionEvent.ACTION_UP://松開時回調(diào)一次

            break;
        }
        //事情分發(fā)機(jī)制
        //true:iv處理該觸摸事件
        //false:iv不處理該觸摸事件,事件傳遞給上一級
        return true;
      }
    });
  }
  public void onplay(View view){
   switch (view.getId()){
     case R.id.red:
       paint.setColor(Color.RED);
       break;
     case R.id.green:
       paint.setColor(Color.GREEN);
       break;
     case R.id.root:
       paint.setStrokeWidth(5);
       break;
     case R.id.save:
       if(SaveViewUtil.saveScreen(iv)){
         Toast.makeText(this, "截圖成功", Toast.LENGTH_SHORT).show();
       }else{
         Toast.makeText(this, "截圖失敗,請檢查sdcard是否可用", Toast.LENGTH_SHORT).show();
       }
       break;
     //涂漆
     case R.id.finish:
       canvas.drawRect(new Rect(0,0,width,height), paint);
       break;
     }

   }
  }

這是一個把畫的圖存儲SD卡的工具類

public class SaveViewUtil {
  
  private static final File rootDir = new File(Environment.getExternalStorageDirectory()+File.separator);

  /**保存截圖的方法*/
  public static boolean saveScreen(View view){
   //判斷sdcard是否可用
   if(!Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
     return false;
   }
   if(!rootDir.exists()){
     rootDir.mkdir();
   }
   view.setDrawingCacheEnabled(true);
   view.buildDrawingCache();
   Bitmap bitmap = view.getDrawingCache();
   try {
     bitmap.compress(CompressFormat.JPEG, 100, new FileOutputStream(new File(rootDir,System.currentTimeMillis()+".jpg")));
     return true;
   } catch (FileNotFoundException e) {
     e.printStackTrace();
     return false;
   }finally{
     view.setDrawingCacheEnabled(false);
     bitmap = null;
   }
  }
}

以上是“Android如何制作畫畫板”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當(dāng)前名稱:Android如何制作畫畫板
文章URL:http://weahome.cn/article/ijosod.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部