編輯:Android開發實例
這個是為實現全屏手寫輸入准備的。
Android平台自身提供了一個底層的顯示接口-FLINGER服務,通過這個接口,我們可以實現創建一個新的顯示區域來繪制想要的顯示內容,並和原有的屏幕輸出混合輸出到屏幕上。
要在普通應用裡使用這個接口,
1、必須指定在AndroidManifest.xml裡指定android.permission.ACCESS_SURFACE_FLINGER權限,添加:
<uses-permission android:name="android.permission.ACCESS_SURFACE_FLINGER" />
2、用系統KEY來簽名包,在Android.mk裡寫上:
LOCAL_CERTIFICATE := platform
然後就可在應用裡使用FLINGER服務了,實例片段如下:
- mSurfaceSession = new SurfaceSession(); //連接到FLINGER服務
- try {
- //創建一個Surface,並在上面繪制
- mSurface = new Surface(mSurfaceSession,
- Process.myPid(),
- Display.DEFAULT_DISPLAY,
- 240, 320,
- PixelFormat.TRANSPARENT,
- 0);
- //通過剛創建的Surface裡獲取一個Canvas,通過這個接口來繪制
- Canvas canvas = mSurface.lockCanvas(null);
- canvas.drawColor(0x0);
- Paint p = new Paint();
- p.setColor(Color.RED);
- canvas.drawLine(0, 0, 240, 320, p);
- canvas.drawLine(240, 0, 0, 320, p);
- //提交更新,讓新的內容輸出到屏幕
- mSurface.unlockCanvasAndPost(canvas);
- mSurface.openTransaction();
- //mSurface.setPosition(0, 0);
- //mSurface.setSize(240, 320);
- //讓這個Surface顯示到最上層
- mSurface.setLayer(99999);
- mSurface.show();
- mSurface.closeTransaction();
- }
- catch (OutOfResourcesException e)
- {
- Log.e(TAG, e.toString());
- }
通過SurfaceSession, 我們可以創建多個Surface, Surface之間的混合是由FLINGER服務直接完成的, 使用者不需要關心, 直接在繪制即可。
如果內核支持多層, 通過打開/dev/fbX來直接寫屏,應該可以實現相同的效果, 不過貌似用官方接口正規一些。
沒圖沒真相,上示例的圖
目前有越來越多的手機具備自動對焦的拍攝功能,這也意味著這些手機可以具備條碼掃描的功能。手機具備條碼掃描的功能,可以優化購物流程,快速存儲電子名片(二維碼)等。 本
可以顯示在的Android任務,通過加載進度條的進展。進度條有兩種形狀。加載欄和加載微調(spinner)。在本章中,我們將討論微調(spinner)。Spinner 用
直接上代碼和圖片。 情況一:[html]代碼如下:<?xml version=1.0 encoding=utf-8?> <LinearLayou
本文為大家分享了Android模擬位置的使用方法,支持Android6.0,供大家參考,具體內容如下 1、開啟系統設置中的模擬位置 Android 6.0 以下: