Android多媒體之畫畫板開發(fā)案例分享
本文實(shí)例為大家分享了Android多媒體之畫畫板開發(fā)的具體代碼,供大家參考,具體內(nèi)容如下
先看看效果:
其實(shí)畫畫板的原理很簡單,就是首先記錄下按下屏幕的點(diǎn),然后每移動一下就讓這兩次移動的點(diǎn)連線,周而復(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); //實(shí)時更新坐標(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)點(diǎn)擊紅色區(qū)域的時候設(shè)置畫筆顏色為紅色 paint.setColor(Color.RED); break; case R.id.green_view: //當(dāng)點(diǎn)擊綠色區(qū)域的時候設(shè)置畫筆顏色為綠色 paint.setColor(Color.GREEN); break; case R.id.blue_view: //當(dāng)點(diǎn)擊藍(lán)色區(qū)域的時候設(shè)置畫筆顏色為藍(lán)色 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) } }
試試覺得很簡單呢,趕緊試試吧!
又到周五了,希望大家有個快樂周末,謝謝大家一直對小編的支持,小編一定會再接再厲,為大家分享更多精彩的文章。
- android實(shí)現(xiàn)簡單的畫畫板實(shí)例代碼
- Android實(shí)現(xiàn)畫板、寫字板功能(附源碼下載)
- Android自定義SurfaceView實(shí)現(xiàn)畫板功能
- Android采用雙緩沖技術(shù)實(shí)現(xiàn)畫板
- Android畫板開發(fā)之添加背景和保存畫板內(nèi)容為圖片
- Android畫板開發(fā)之橡皮擦功能
- Android實(shí)現(xiàn)畫畫板案例
- Android編程實(shí)現(xiàn)畫板功能的方法總結(jié)【附源碼下載】
- Android畫板開發(fā)之撤銷反撤銷功能
- Android自定義View實(shí)現(xiàn)簡易畫板功能
相關(guān)文章
android實(shí)現(xiàn)上下滾動的TextView
android實(shí)現(xiàn)上下滾動的TextView,需要的朋友可以參考一下2013-05-05Android應(yīng)用自動跳轉(zhuǎn)到應(yīng)用市場詳情頁面的方法
最近在工作中遇到一個需求,推廣部門要求實(shí)現(xiàn)應(yīng)用自動跳轉(zhuǎn)到應(yīng)用市場詳情頁面,通過查找一些資料,實(shí)現(xiàn)出來了,覺得有必要整理下方便以后或者有需要的朋友們參考借鑒,下面來一起詳細(xì)看看Android應(yīng)用自動跳轉(zhuǎn)到應(yīng)用市場詳情頁面的方法吧。2016-12-12Android帶刷新時間顯示的PullToRefresh上下拉刷新
這篇文章主要為大家詳細(xì)介紹了Android帶刷新時間顯示的PullToRefresh上下拉刷新,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12刷新Activity中的scrollview示例(局部ui刷新)
代碼很簡單,但是很實(shí)用,適合在一個Activity中要刷新局部的UI,比如在掃描一維碼的時候,要把每次掃描的結(jié)果都顯示在界面上2014-01-01Android編寫Router路由框架實(shí)例過程詳解
為什么要用路由框架,路由框架哪些好處等等,在此就不做解釋2023-04-04
最常用的框架是ARouter,那是不是可以自己寫一個路由框架呢,不參考ARouter的方式輕松實(shí)現(xiàn)Android仿淘寶地區(qū)選擇功能
這篇文章主要介紹了輕松實(shí)現(xiàn)Android仿淘寶地區(qū)選擇功能的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-06-06