Android自定义相机界面的实现代码

Android自定义相机界面的实现代码,第1张

概述我们先实现拍照按钮的圆形效果哈,Android开发中,当然可以找美工人员设计图片,然后直接拿进来,不过我们可以自己写代码实现这个效果哈,最常用的的是用layout-list实现图片的叠加,我们这个layout命名为btn_take_p

我们先实现拍照按钮的圆形效果哈,AndroID开发中,当然可以找美工人员设计图片,然后直接拿进来,不过我们可以自己写代码实现这个效果哈,最常用的的是用layout-List实现图片的叠加,我们这个layout命名为btn_take_photo.xml,这是一个自定义的drawable文件,所以按照规范,我们要将它放在drawable文件夹里。

注意:drawable文件夹一般是来放自定义的drawable文件的,可以将它看成自己写的背景样式等等哦

解释代码:

@R_853_3419@里面放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"?> <@R_853_3419@ 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> </@R_853_3419@> 

这是一个界面: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;  } } 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Android自定义相机界面的实现代码全部内容,希望文章能够帮你解决Android自定义相机界面的实现代码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1147634.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存