Android實現一個自訂相機的介面
我們先實現拍照按鈕的圓形效果哈,Android開發中,當然可以找美工人員設計圖片,然後直接拿進來,不過我們可以自己寫代碼實現這個效果哈,最常用的的是用layout-list實現圖片的疊加,我們這個layout命名為btn_take_photo.xml,這是一個自訂的drawable檔案,所以按照規範,我們要將它放在drawable檔案夾裡
注意:drawable檔案夾一般是來放自訂的drawable檔案的,可以將它看成自己寫的背景樣式等等哦
解釋代碼:
layer-list裡面放3個item,先實現一個白色背景的橢圓,屬性android:shape="oval"是實現橢圓的
android:shape=["rectangle" | "oval" | "line" | "ring"]
shape的形狀,預設為矩形,可以設定為矩形(rectangle)、橢圓形(oval)、線性形狀(line)、環形(ring)
然後再放入一個item,這個item是一個左右上下都等長的橢圓
ok,這樣一個等邊的橢圓就做好了
接著再次放入一個一個藍色背景的橢圓
這是一個介面:activity_take_photo.xml
介面的很簡單,這裡只是提供參考學習的,解釋代碼:
SurfaceView是用來拍照用的,注意這個類只要和視頻或者拍照的都需要用到,不過項目裡一般都是自己寫的
這些代碼只是參考互相學習,功能的話,自己還在做,所以先提供這些學習的...,希望可以協助學習的人,然後自己寫部落格的目的也是對自己學習的技術進行收錄和共用,只是本著互相學習的目的
<framelayout android:background="#ffffff" android:layout_height="match_parent" android:layout_width="match_parent" xmlns:android="http://schemas.android.com/apk/res/android"> </framelayout>
提供自訂CameraGrid類:
/** * 自訂的View * 照相機井字線 * */public class CameraGrid extends View { private int topBannerWidth = 0; private Paint mPaint; public CameraGrid(Context context) { this(context,null); } public CameraGrid(Context context, AttributeSet attrs) { super(context, attrs); init(); } private void init(){ mPaint = new Paint(); mPaint.setColor(Color.WHITE); mPaint.setAlpha(120); mPaint.setStrokeWidth(1f); } private boolean showGrid = true; public boolean isShowGrid() { return showGrid; } public void setShowGrid(boolean showGrid) { this.showGrid = showGrid; } public int getTopWidth() { return topBannerWidth; }}