最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android多媒體之畫畫板開發(fā)案例分享

 更新時間:2021年05月19日 09:31:10   作者:TheMrNice  
這篇文章主要為大家分享了Android多媒體之畫畫板開發(fā)案例,具有一定的實用性和參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了Android多媒體之畫畫板開發(fā)的具體代碼,供大家參考,具體內容如下

先看看效果:

其實畫畫板的原理很簡單,就是首先記錄下按下屏幕的點,然后每移動一下就讓這兩次移動的點連線,周而復始,圖像就由很多條直線構成了。

核心代碼 :

public class MainActivity extends Activity implements OnClickListener,OnSeekBarChangeListener {

  private View red_view,green_view,blue_view;   //控制畫筆顏色的三塊區(qū)域
  private SeekBar seekBar;    //控制畫筆粗細的拖動條
  private ImageView iv;  
  private Bitmap bitmap,backgroud;  //畫紙和背景圖
  private Canvas canvas;       //畫布
  private Paint paint;        //畫筆
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    red_view = findViewById(R.id.red_view);
    green_view = findViewById(R.id.green_view);
    blue_view = findViewById(R.id.blue_view);
    seekBar = (SeekBar) findViewById(R.id.seekbar);
    iv = (ImageView) findViewById(R.id.iv);
    iv.setImageResource(R.drawable.bg);
    //拿到背景圖
    backgroud = BitmapFactory.decodeResource(getResources(), R.drawable.bg);
    //拿到和背景圖一樣大小的畫紙
    bitmap = Bitmap.createBitmap(backgroud.getWidth(), backgroud.getHeight(), backgroud.getConfig());
    //把畫紙固定在畫布上
    canvas = new Canvas(bitmap);
    //拿到畫筆
    paint = new Paint();
    paint.setColor(Color.BLACK);//設置畫筆顏色為黑色
    paint.setStyle(Style.STROKE);//設置畫筆為空心
    //添加處理規(guī)則
    Matrix matrix = new Matrix();
    //照著背景圖畫
    canvas.drawBitmap(backgroud, matrix, paint);
    red_view.setOnClickListener(this);
    green_view.setOnClickListener(this);
    blue_view.setOnClickListener(this);
    seekBar.setOnSeekBarChangeListener(this);
    iv.setOnTouchListener(new OnTouchListener() {
      float startX;
      float startY;
      @Override
      public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) {
        //獲取按下時的坐標
        case MotionEvent.ACTION_DOWN:
          startX = event.getX();
          startY = event.getY();
          break;
        //獲取移動時的坐標
        case MotionEvent.ACTION_MOVE:
          float stopX = event.getX();
          float stopY = event.getY();
//          // 在開始和結束坐標間畫一條線
          canvas.drawLine(startX, startY, stopX, stopY, paint);
          //實時更新坐標(通過不斷畫線)
          startX = event.getX();
          startY = event.getY();

          iv.setImageBitmap(bitmap);
          break;
        case MotionEvent.ACTION_UP:
          break;
        default:
          break;
        }
        return true;
      }
    });
  }
  @Override
  public void onClick(View v) {
    switch (v.getId()) {
    case R.id.red_view:
      //當點擊紅色區(qū)域的時候設置畫筆顏色為紅色
      paint.setColor(Color.RED);
      break;
    case R.id.green_view:
      //當點擊綠色區(qū)域的時候設置畫筆顏色為綠色
      paint.setColor(Color.GREEN);
      break;
    case R.id.blue_view:
      //當點擊藍色區(qū)域的時候設置畫筆顏色為藍色
      paint.setColor(Color.BLUE);
      break;
    default:
      break;
    }
  }
  //拖動條的值改變的時候調用
  @Override
  public void onProgressChanged(SeekBar seekBar, int progress,
      boolean fromUser) {

  }
  //開始拖動時調用
  @Override
  public void onStartTrackingTouch(SeekBar seekBar) {

  }
  //停止拖動時調用
  @Override
  public void onStopTrackingTouch(SeekBar seekBar) {
    int progress = seekBar.getProgress();//拖動條默認的最大值為100
    paint.setStrokeWidth(progress/10f);//控制畫筆的粗細范圍(0-10)
  }
}

試試覺得很簡單呢,趕緊試試吧!

又到周五了,希望大家有個快樂周末,謝謝大家一直對小編的支持,小編一定會再接再厲,為大家分享更多精彩的文章。

相關文章

  • Android仿淘寶首頁頭條View垂直滾動效果

    Android仿淘寶首頁頭條View垂直滾動效果

    這篇文章主要為大家詳細介紹了Android仿淘寶首頁頭條View垂直滾動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Android使用Dialog風格彈出框的Activity

    Android使用Dialog風格彈出框的Activity

    這篇文章主要為大家詳細介紹了Android使用Dialog風格彈出框的Activity,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Android實現(xiàn)手指觸控圖片縮放功能

    Android實現(xiàn)手指觸控圖片縮放功能

    這篇文章主要為大家詳細介紹了Android實現(xiàn)手指觸控圖片縮放功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Android如何通過URI獲取文件路徑示例代碼

    Android如何通過URI獲取文件路徑示例代碼

    這篇文章主要給大家介紹了關于Android如何通過URI獲取文件路徑的相關資料,文中通過示例代碼介紹的非常詳細,對各位Android開發(fā)者們具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-01-01
  • Gradle的緩存路徑修改的四種方法(小結)

    Gradle的緩存路徑修改的四種方法(小結)

    這篇文章主要介紹了Gradle的緩存路徑修改的四種方法(小結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Android仿音樂播放器帶進度的播放暫停按鈕

    Android仿音樂播放器帶進度的播放暫停按鈕

    這篇文章主要為大家詳細介紹了Android仿音樂播放器帶進度的播放暫停按鈕,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • Android View 測量流程(Measure)全面解析

    Android View 測量流程(Measure)全面解析

    這篇文章主要為大家全面解析了Android View 測量流程Measure,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Android圖片加載框架Coil的詳細使用總結

    Android圖片加載框架Coil的詳細使用總結

    Coil是Android上的一個全新的圖片加載框架,它的全名叫做coroutine image loader,即協(xié)程圖片加載庫,下面這篇文章主要給大家介紹了關于Android圖片加載框架Coil詳細使用的相關資料,需要的朋友可以參考下
    2022-07-07
  • 解析Android中如何做到Service被關閉后又自動啟動的實現(xiàn)方法

    解析Android中如何做到Service被關閉后又自動啟動的實現(xiàn)方法

    本篇文章是對在Android中如何做到Service被關閉后又自動啟動的方法進行了詳細的分析和介紹。需要的朋友參考下
    2013-05-05
  • Android實現(xiàn)應用內置語言切換功能

    Android實現(xiàn)應用內置語言切換功能

    這篇文章主要為大家詳細介紹了Android實現(xiàn)應用內置語言切換功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02

最新評論

星子县| 雷波县| 泰安市| 庆元县| 西安市| 镇平县| 克拉玛依市| 平阳县| 邛崃市| 青川县| 家居| 永修县| 浮梁县| 泾阳县| 汉中市| 根河市| 牙克石市| 延吉市| 米易县| 清新县| 台州市| 武义县| 文化| 大关县| 荔浦县| 清水河县| 临朐县| 高阳县| 郁南县| 石台县| 克什克腾旗| 彰化县| 沙坪坝区| 诸暨市| 新丰县| 辽宁省| 辽阳县| 遂平县| 乐业县| 仁布县| 繁峙县|