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

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

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

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

先看看效果:

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

核心代碼 :

public class MainActivity extends Activity implements OnClickListener,OnSeekBarChangeListener {

  private View red_view,green_view,blue_view;   //控制畫筆顏色的三塊區(qū)域
  private SeekBar seekBar;    //控制畫筆粗細(xì)的拖動條
  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);//設(shè)置畫筆顏色為黑色
    paint.setStyle(Style.STROKE);//設(shè)置畫筆為空心
    //添加處理規(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()) {
        //獲取按下時的坐標(biāo)
        case MotionEvent.ACTION_DOWN:
          startX = event.getX();
          startY = event.getY();
          break;
        //獲取移動時的坐標(biāo)
        case MotionEvent.ACTION_MOVE:
          float stopX = event.getX();
          float stopY = event.getY();
//          // 在開始和結(jié)束坐標(biāo)間畫一條線
          canvas.drawLine(startX, startY, stopX, stopY, paint);
          //實時更新坐標(biāo)(通過不斷畫線)
          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:
      //當(dāng)點擊紅色區(qū)域的時候設(shè)置畫筆顏色為紅色
      paint.setColor(Color.RED);
      break;
    case R.id.green_view:
      //當(dāng)點擊綠色區(qū)域的時候設(shè)置畫筆顏色為綠色
      paint.setColor(Color.GREEN);
      break;
    case R.id.blue_view:
      //當(dāng)點擊藍色區(qū)域的時候設(shè)置畫筆顏色為藍色
      paint.setColor(Color.BLUE);
      break;
    default:
      break;
    }
  }
  //拖動條的值改變的時候調(diào)用
  @Override
  public void onProgressChanged(SeekBar seekBar, int progress,
      boolean fromUser) {

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

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

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

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

相關(guān)文章

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

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

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

    Android使用Dialog風(fēng)格彈出框的Activity

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

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

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

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

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

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

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

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

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

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

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

    Android圖片加載框架Coil的詳細(xì)使用總結(jié)

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

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

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

    Android實現(xiàn)應(yīng)用內(nèi)置語言切換功能

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

最新評論

治多县| 襄城县| 郸城县| 定边县| 桐乡市| 奉节县| 牙克石市| 栾城县| 沅陵县| 内丘县| 哈尔滨市| 岳西县| 卓资县| 图片| 广饶县| 定安县| 旬邑县| 斗六市| 德惠市| 滦平县| 和顺县| 贡山| 英超| 福海县| 富民县| 东安县| 西城区| 兴仁县| 芒康县| 酒泉市| 固始县| 治县。| 翁牛特旗| 广元市| 景德镇市| 陕西省| 齐河县| 宁夏| 天峨县| 福建省| 榆社县|