Android實現一個自訂相機的介面

來源:互聯網
上載者:User

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;    }}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.