国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android自定義相機界面的實現代碼

2019-12-12 04:35:45
字體:
來源:轉載
供稿:網友

我們先實現拍照按鈕的圓形效果哈,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,這樣一個等邊的橢圓就做好了

接著再次放入一個一個藍色背景的橢圓

<?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android">  <item>   <shape android:shape="oval">    <solid android:color="@color/white" />   </shape>  </item>  <item   android:bottom="6dp"   android:left="6dp"   android:right="6dp"   android:top="6dp">   <shape android:shape="oval">    <solid android:color="@color/blue" />   </shape>  </item>  <item>   <shape android:shape="oval">    <stroke     android:width="1dp"     android:color="@color/blue"     android:dashWidth="0dp" />   </shape>  </item> </layer-list> 

這是一個界面:activity_take_photo.xml
界面的很簡單,這里只是提供參考學習的,解釋代碼:
SurfaceView是用來拍照用的,注意這個類只要和視頻或者拍照的都需要用到,不過項目里一般都是自己寫的。
這些代碼只是參考互相學習,功能的話,自己還在做,所以先提供這些學習的...,希望可以幫助學習的人,然后自己寫博客的目的也是對自己學習的技術進行收錄和共享,只是本著互相學習的目的。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:background="#ffffff">   <!-- 顯示預覽圖形 -->   <SurfaceView   android:id="@+id/surfaceView"   android:layout_width="match_parent"   android:layout_height="match_parent" />   <RelativeLayout   android:id="@+id/buttonLayout"   android:layout_width="match_parent"   android:layout_height="match_parent"   android:background="@drawable/pic">    <RelativeLayout    android:id="@+id/panel_take_photo"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:layout_alignParentBottom="true"    android:background="@color/white"    android:gravity="center_vertical"    android:padding="2dp">      <Button     android:id="@+id/btn_take_photo"     android:layout_width="50dp"     android:layout_height="50dp"     android:background="@drawable/btn_take_photo"     android:layout_centerHorizontal="true"     android:layout_alignTop="@+id/iv_album" />     <ImageView     android:id="@+id/iv_album"     android:layout_width="40dp"     android:layout_height="40dp"     android:layout_alignParentLeft="true"     android:layout_centerVertical="true"     android:layout_marginLeft="20dp"     android:padding="5dp"     android:src="@drawable/camera_library" />     <ImageView     android:id="@+id/title_btn_black"     android:layout_width="40dp"     android:layout_height="40dp"     android:layout_alignParentRight="true"     android:layout_centerVertical="true"     android:layout_marginRight="20dp"     android:padding="5dp"     android:src="@drawable/camera_back" />   </RelativeLayout>     <LinearLayout    android:id="@+id/photo_area"    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:layout_above="@id/panel_take_photo"    android:layout_centerVertical="true"    android:background="@color/white"    android:orientation="horizontal"></LinearLayout>    <!-- 自定義的標題欄-->   <RelativeLayout    android:id="@+id/camera_top"    android:layout_width="fill_parent"    android:layout_height="40dp"    android:layout_alignParentTop="true"    android:background="@color/black">     <ImageView     android:id="@+id/btn_black"     android:layout_width="wrap_content"     android:layout_height="fill_parent"     android:layout_alignParentLeft="true"     android:paddingBottom="10dp"     android:paddingLeft="10dp"     android:paddingTop="10dp"     android:src="@drawable/back" />     <ImageView     android:id="@+id/btn_change"     android:layout_width="wrap_content"     android:layout_height="fill_parent"     android:layout_alignParentRight="true"     android:layout_centerVertical="true"     android:paddingBottom="10dp"     android:paddingRight="10dp"     android:paddingTop="10dp"     android:src="@drawable/camera_flip" />    </RelativeLayout>    <!-- 自定義的CameraGrid-->   <org.personality.camera.ui.view.CameraGrid    android:id="@+id/masking"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:layout_above="@id/photo_area"    android:layout_alignParentTop="true" />    <View    android:id="@+id/focus_index"    android:layout_width="40dp"    android:layout_height="40dp"    android:layout_above="@id/photo_area"    android:background="@drawable/cam_focus"    android:visibility="invisible" />  </RelativeLayout>  </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;  } } 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万州区| 太仓市| 博乐市| 兴安盟| 云南省| 台安县| 深水埗区| 张家港市| 巴塘县| 家居| 庐江县| 鱼台县| 庆阳市| 泗洪县| 凌海市| 桃园市| 洛隆县| 陵水| 萨嘎县| 星子县| 南开区| 弥渡县| 荔浦县| 乾安县| 湖北省| 黄陵县| 陇南市| 化隆| 内丘县| 藁城市| 玉门市| 潼南县| 中方县| 江永县| 磐安县| 岫岩| 西贡区| 南康市| 鹤山市| 文安县| 城步|