編輯:關於Android編程
今天完成一個畫畫板。
首先來個布局:
看一下主活動代碼:
package com.itydl.paintban; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.Bitmap.CompressFormat; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; import android.view.Menu; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.widget.ImageView; public class MainActivity extends Activity { private ImageView iv; int startX; int startY; private Canvas canvas; private Paint paint; private Bitmap bmCopy; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //加載畫畫板的背景圖 Bitmap bmSrc = BitmapFactory.decodeResource(getResources(), R.drawable.bg); bmCopy = Bitmap.createBitmap(bmSrc.getWidth(), bmSrc.getHeight(), bmSrc.getConfig()); paint = new Paint(); canvas = new Canvas(bmCopy); //繪制 canvas.drawBitmap(bmSrc, new Matrix(), paint); iv = (ImageView) findViewById(R.id.iv); iv.setImageBitmap(bmCopy); //設置觸摸偵聽 iv.setOnTouchListener(new OnTouchListener() { //觸摸屏幕時,觸摸事件產生時,此方法調用 @Override public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action) { //用戶手指摸到屏幕 case MotionEvent.ACTION_DOWN: startX = (int) event.getX(); startY = (int) event.getY(); break; //用戶手指正在滑動 case MotionEvent.ACTION_MOVE: int x = (int) event.getX(); int y = (int) event.getY(); canvas.drawLine(startX, startY, x, y, paint); //每次繪制完畢之後,本次繪制的結束坐標變成下一次繪制的初始坐標 startX = x; startY = y; iv.setImageBitmap(bmCopy); break; //用戶手指離開屏幕 case MotionEvent.ACTION_UP: break; } //true:告訴系統,這個觸摸事件由我來處理 //false:告訴系統,這個觸摸事件我不處理,這時系統會把觸摸事件傳遞給imageview的父節點 return true; } }); } public void red(View v){ paint.setColor(Color.RED); } public void green(View v){ paint.setColor(Color.GREEN); } public void brush(View v){ paint.setStrokeWidth(7); } public void save(View v){ File file = new File("sdcard/dazuo.png"); FileOutputStream fos = null; try { fos = new FileOutputStream(file); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } bmCopy.compress(CompressFormat.PNG, 100, fos); //發送sd卡就緒廣播 Intent intent = new Intent(); intent.setAction(Intent.ACTION_MEDIA_MOUNTED); intent.setData(Uri.fromFile(Environment.getExternalStorageDirectory())); sendBroadcast(intent); } }
畫了個綠帽子,哈哈。
android視頻播放主要是兩種方式1、系統封裝好的videoplayer,有前進、後退、暫停/播放、拉動最基本的功能,夠一般使用,操作辦法也很簡單,如果需要自定義程度高
POI搜索有三種方式,根據范圍和檢索詞發起范圍檢索poiSearchInbounds,城市poi檢索poiSearchInCity,周邊檢索poiSearchNearBy
最近項目中用到了滑動頁面,也就是和目前市場上很火的今日頭條頁面滑動類似,在網上找了一下,大部分都是用ViewPager來實現的,剛開始我用的是ViewPager+View
相信很多碼友都碰到過這種情況,在一個界面放了一個datepicker.但是在5.0以上的手機上顏色顯示的效果不怎麼好。就像下圖這樣,顏色處理的不怎麼好。一開始百度找解決辦