【实例简介】
Android圆形相机预览窗口,圆形SurfaceView
【实例截图】
【核心代码】
TouchTest
└── TouchTest
├── app
│ ├── app.iml
│ ├── build
│ │ ├── generated
│ │ │ ├── res
│ │ │ │ └── pngs
│ │ │ │ └── debug
│ │ │ │ ├── drawable-anydpi-v21
│ │ │ │ │ ├── abc_btn_checkbox_checked_mtrl.xml
│ │ │ │ │ ├── abc_btn_checkbox_unchecked_mtrl.xml
│ │ │ │ │ ├── abc_btn_radio_off_mtrl.xml
│ │ │ │ │ ├── abc_btn_radio_on_mtrl.xml
│ │ │ │ │ ├── abc_ic_ab_back_material.xml
│ │ │ │ │ ├── abc_ic_clear_material.xml
│ │ │ │ │ ├── abc_ic_go_search_api_material.xml
│ │ │ │ │ ├── abc_ic_menu_copy_material.xml
│ │ │ │ │ ├── abc_ic_menu_cut_material.xml
│ │ │ │ │ ├── abc_ic_menu_overflow_material.xml
│ │ │ │ │ ├── abc_ic_menu_paste_material.xml
│ │ │ │ │ ├── abc_ic_menu_selectall_material.xml
│ │ │ │ │ ├── abc_ic_menu_share_material.xml
│ │ │ │ │ └── abc_ic_voice_search_api_material.xml
│ │ │ │ ├── drawable-hdpi
│ │ │ │ │ ├── abc_btn_checkbox_checked_mtrl.png
│ │ │ │ │ ├── abc_btn_checkbox_unchecked_mtrl.png
│ │ │ │ │ ├── abc_btn_radio_off_mtrl.png
│ │ │ │ │ ├── abc_btn_radio_on_mtrl.png
│ │ │ │ │ ├── abc_ic_ab_back_material.png
│ │ │ │ │ ├── abc_ic_clear_material.png
│ │ │ │ │ ├── abc_ic_go_search_api_material.png
│ │ │ │ │ ├── abc_ic_menu_copy_material.png
│ │ │ │ │ ├── abc_ic_menu_cut_material.png
│ │ │ │ │ ├── abc_ic_menu_overflow_material.png
│ │ │ │ │ ├── abc_ic_menu_paste_material.png
│ │ │ │ │ ├── abc_ic_menu_selectall_material.png
│ │ │ │ │ ├── abc_ic_menu_share_material.png
│ │ │ │ │ └── abc_ic_voice_search_api_material.png
│ │ │ │ ├── drawable-ldpi
│ │ │ │ │ ├── abc_btn_checkbox_checked_mtrl.png
│ │ │ │ │ ├── abc_btn_checkbox_unchecked_mtrl.png
│ │ │ │ │ ├── abc_btn_radio_off_mtrl.png
│ │ │ │ │ ├── abc_btn_radio_on_mtrl.png
│ │ │ │ │ ├── abc_ic_ab_back_material.png
│ │ │ │ │ ├── abc_ic_clear_material.png
│ │ │ │ │ ├── abc_ic_go_search_api_material.png
│ │ │ │ │ ├── abc_ic_menu_copy_material.png
│ │ │ │ │ ├── abc_ic_menu_cut_material.png
│ │ │ │ │ ├── abc_ic_menu_overflow_material.png
│ │ │ │ │ ├── abc_ic_menu_paste_material.png
│ │ │ │ │ ├── abc_ic_menu_selectall_material.png
│ │ │ │ │ ├── abc_ic_menu_share_material.png
│ │ │ │ │ └── abc_ic_voice_search_api_material.png
│ │ │ │ ├── drawable-mdpi
│ │ │ │ │ ├── abc_btn_checkbox_checked_mtrl.png
│ │ │ │ │ ├── abc_btn_checkbox_unchecked_mtrl.png
│ │ │ │ │ ├── abc_btn_radio_off_mtrl.png
│ │ │ │ │ ├── abc_btn_radio_on_mtrl.png
│ │ │ │ │ ├── abc_ic_ab_back_material.png
│ │ │ │ │ ├── abc_ic_clear_material.png
│ │ │ │ │ ├── abc_ic_go_search_api_material.png
│ │ │ │ │ ├── abc_ic_menu_copy_material.png
│ │ │ │ │ ├── abc_ic_menu_cut_material.png
│ │ │ │ │ ├── abc_ic_menu_overflow_material.png
│ │ │ │ │ ├── abc_ic_menu_paste_material.png
│ │ │ │ │ ├── abc_ic_menu_selectall_material.png
│ │ │ │ │ ├── abc_ic_menu_share_material.png
│ │ │ │ │ └── abc_ic_voice_search_api_material.png
│ │ │ │ ├── drawable-xhdpi
│ │ │ │ │ ├── abc_btn_checkbox_checked_mtrl.png
│ │ │ │ │ ├── abc_btn_checkbox_unchecked_mtrl.png
│ │ │ │ │ ├── abc_btn_radio_off_mtrl.png
│ │ │ │ │ ├── abc_btn_radio_on_mtrl.png
│ │ │ │ │ ├── abc_ic_ab_back_material.png
│ │ │ │ │ ├── abc_ic_clear_material.png
│ │ │ │ │ ├── abc_ic_go_search_api_material.png
│ │ │ │ │ ├── abc_ic_menu_copy_material.png
│ │ │ │ │ ├── abc_ic_menu_cut_material.png
│ │ │ │ │ ├── abc_ic_menu_overflow_material.png
│ │ │ │ │ ├── abc_ic_menu_paste_material.png
│ │ │ │ │ ├── abc_ic_menu_selectall_material.png
│ │ │ │ │ ├── abc_ic_menu_share_material.png
│ │ │ │ │ └── abc_ic_voice_search_api_material.png
│ │ │ │ ├── drawable-xxhdpi
│ │ │ │ │ ├── abc_btn_checkbox_checked_mtrl.png
│ │ │ │ │ ├── abc_btn_checkbox_unchecked_mtrl.png
│ │ │ │ │ ├── abc_btn_radio_off_mtrl.png
│ │ │ │ │ ├── abc_btn_radio_on_mtrl.png
│ │ │ │ │ ├── abc_ic_ab_back_material.png
│ │ │ │ │ ├── abc_ic_clear_material.png
│ │ │ │ │ ├── abc_ic_go_search_api_material.png
│ │ │ │ │ ├── abc_ic_menu_copy_material.png
│ │ │ │ │ ├── abc_ic_menu_cut_material.png
│ │ │ │ │ ├── abc_ic_menu_overflow_material.png
│ │ │ │ │ ├── abc_ic_menu_paste_material.png
│ │ │ │ │ ├── abc_ic_menu_selectall_material.png
│ │ │ │ │ ├── abc_ic_menu_share_material.png
│ │ │ │ │ └── abc_ic_voice_search_api_material.png
│ │ │ │ └── drawable-xxxhdpi
│ │ │ │ ├── abc_btn_checkbox_checked_mtrl.png
│ │ │ │ ├── abc_btn_checkbox_unchecked_mtrl.png
│ │ │ │ ├── abc_btn_radio_off_mtrl.png
│ │ │ │ ├── abc_btn_radio_on_mtrl.png
│ │ │ │ ├── abc_ic_ab_back_material.png
│ │ │ │ ├── abc_ic_clear_material.png
│ │ │ │ ├── abc_ic_go_search_api_material.png
│ │ │ │ ├── abc_ic_menu_copy_material.png
│ │ │ │ ├── abc_ic_menu_cut_material.png
│ │ │ │ ├── abc_ic_menu_overflow_material.png
│ │ │ │ ├── abc_ic_menu_paste_material.png
│ │ │ │ ├── abc_ic_menu_selectall_material.png
│ │ │ │ ├── abc_ic_menu_share_material.png
│ │ │ │ └── abc_ic_voice_search_api_material.png
│ │ │ └── source
│ │ │ ├── buildConfig
│ │ │ │ ├── androidTest
│ │ │ │ │ └── debug
│ │ │ │ │ └── com
│ │ │ │ │ └── example
│ │ │ │ │ └── jingyouliu
│ │ │ │ │ └── touchtest
│ │ │ │ │ └── test
│ │ │ │ │ └── BuildConfig.java
│ │ │ │ └── debug
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── jingyouliu
│ │ │ │ └── touchtest
│ │ │ │ └── BuildConfig.java
│ │ │ └── r
│ │ │ └── debug
│ │ │ ├── android
│ │ │ │ └── support
│ │ │ │ ├── design
│ │ │ │ │ └── R.java
│ │ │ │ └── v7
│ │ │ │ ├── appcompat
│ │ │ │ │ └── R.java
│ │ │ │ └── recyclerview
│ │ │ │ └── R.java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── jingyouliu
│ │ │ └── touchtest
│ │ │ └── R.java
│ │ ├── intermediates
│ │ │ ├── blame
│ │ │ │ └── res
│ │ │ │ └── debug
│ │ │ │ ├── multi
│ │ │ │ │ ├── values-af.json
│ │ │ │ │ ├── values-am.json
│ │ │ │ │ ├── values-ar.json
│ │ │ │ │ ├── values-az-rAZ.json
│ │ │ │ │ ├── values-bg.json
│ │ │ │ │ ├── values-bn-rBD.json
│ │ │ │ │ ├── values-ca.json
│ │ │ │ │ ├── values-cs.json
│ │ │ │ │ ├── values-da.json
│ │ │ │ │ ├── values-de.json
│ │ │ │ │ ├── values-el.json
│ │ │ │ │ ├── values-en-rAU.json
│ │ │ │ │ ├── values-en-rGB.json
│ │ │ │ │ ├── values-en-rIN.json
│ │ │ │ │ ├── values-es.json
│ │ │ │ │ ├── values-es-rUS.json
│ │ │ │ │ ├── values-et-rEE.json
│ │ │ │ │ ├── values-eu-rES.json
│ │ │ │ │ ├── values-fa.json
│ │ │ │ │ ├── values-fi.json
│ │ │ │ │ ├── values-fr.json
│ │ │ │ │ ├── values-fr-rCA.json
│ │ │ │ │ ├── values-gl-rES.json
│ │ │ │ │ ├── values-gu-rIN.json
│ │ │ │ │ ├── values-h320dp-v13.json
│ │ │ │ │ ├── values-h720dp-v13.json
│ │ │ │ │ ├── values-hdpi-v4.json
│ │ │ │ │ ├── values-hi.json
│ │ │ │ │ ├── values-hr.json
│ │ │ │ │ ├── values-hu.json
│ │ │ │ │ ├── values-hy-rAM.json
│ │ │ │ │ ├── values-in.json
│ │ │ │ │ ├── values-is-rIS.json
│ │ │ │ │ ├── values-it.json
│ │ │ │ │ ├── values-iw.json
│ │ │ │ │ ├── values-ja.json
│ │ │ │ │ ├── values.json
│ │ │ │ │ ├── values-ka-rGE.json
│ │ │ │ │ ├── values-kk-rKZ.json
│ │ │ │ │ ├── values-km-rKH.json
│ │ │ │ │ ├── values-kn-rIN.json
│ │ │ │ │ ├── values-ko.json
│ │ │ │ │ ├── values-ky-rKG.json
│ │ │ │ │ ├── values-land.json
│ │ │ │ │ ├── values-large-v4.json
│ │ │ │ │ ├── values-ldltr-v21.json
│ │ │ │ │ ├── values-lo-rLA.json
│ │ │ │ │ ├── values-lt.json
│ │ │ │ │ ├── values-lv.json
│ │ │ │ │ ├── values-mk-rMK.json
│ │ │ │ │ ├── values-ml-rIN.json
│ │ │ │ │ ├── values-mn-rMN.json
│ │ │ │ │ ├── values-mr-rIN.json
│ │ │ │ │ ├── values-ms-rMY.json
│ │ │ │ │ ├── values-my-rMM.json
│ │ │ │ │ ├── values-nb.json
│ │ │ │ │ ├── values-ne-rNP.json
│ │ │ │ │ ├── values-night-v8.json
│ │ │ │ │ ├── values-nl.json
│ │ │ │ │ ├── values-pa-rIN.json
│ │ │ │ │ ├── values-pl.json
│ │ │ │ │ ├── values-port.json
│ │ │ │ │ ├── values-pt.json
│ │ │ │ │ ├── values-pt-rBR.json
│ │ │ │ │ ├── values-pt-rPT.json
│ │ │ │ │ ├── values-ro.json
│ │ │ │ │ ├── values-ru.json
│ │ │ │ │ ├── values-si-rLK.json
│ │ │ │ │ ├── values-sk.json
│ │ │ │ │ ├── values-sl.json
│ │ │ │ │ ├── values-sq-rAL.json
│ │ │ │ │ ├── values-sr.json
│ │ │ │ │ ├── values-sv.json
│ │ │ │ │ ├── values-sw600dp-v13.json
│ │ │ │ │ ├── values-sw.json
│ │ │ │ │ ├── values-ta-rIN.json
│ │ │ │ │ ├── values-te-rIN.json
│ │ │ │ │ ├── values-th.json
│ │ │ │ │ ├── values-tl.json
│ │ │ │ │ ├── values-tr.json
│ │ │ │ │ ├── values-uk.json
│ │ │ │ │ ├── values-ur-rPK.json
│ │ │ │ │ ├── values-uz-rUZ.json
│ │ │ │ │ ├── values-v11.json
│ │ │ │ │ ├── values-v12.json
│ │ │ │ │ ├── values-v13.json
│ │ │ │ │ ├── values-v14.json
│ │ │ │ │ ├── values-v17.json
│ │ │ │ │ ├── values-v18.json
│ │ │ │ │ ├── values-v21.json
│ │ │ │ │ ├── values-v22.json
│ │ │ │ │ ├── values-v23.json
│ │ │ │ │ ├── values-vi.json
│ │ │ │ │ ├── values-w360dp-v13.json
│ │ │ │ │ ├── values-w480dp-v13.json
│ │ │ │ │ ├── values-w500dp-v13.json
│ │ │ │ │ ├── values-w600dp-v13.json
│ │ │ │ │ ├── values-w720dp-v13.json
│ │ │ │ │ ├── values-w820dp-v13.json
│ │ │ │ │ ├── values-xlarge-land-v4.json
│ │ │ │ │ ├── values-xlarge-v4.json
│ │ │ │ │ ├── values-zh-rCN.json
│ │ │ │ │ ├── values-zh-rHK.json
│ │ │ │ │ ├── values-zh-rTW.json
│ │ │ │ │ └── values-zu.json
│ │ │ │ └── single
│ │ │ │ ├── anim.json
│ │ │ │ ├── anim-v21.json
│ │ │ │ ├── color.json
│ │ │ │ ├── color-v11.json
│ │ │ │ ├── color-v23.json
│ │ │ │ ├── drawable-anydpi-v21.json
│ │ │ │ ├── drawable-hdpi-v4.json
│ │ │ │ ├── drawable.json
│ │ │ │ ├── drawable-ldpi-v4.json
│ │ │ │ ├── drawable-ldrtl-hdpi-v17.json
│ │ │ │ ├── drawable-ldrtl-mdpi-v17.json
│ │ │ │ ├── drawable-ldrtl-xhdpi-v17.json
│ │ │ │ ├── drawable-ldrtl-xxhdpi-v17.json
│ │ │ │ ├── drawable-ldrtl-xxxhdpi-v17.json
│ │ │ │ ├── drawable-mdpi-v4.json
│ │ │ │ ├── drawable-v21.json
│ │ │ │ ├── drawable-v23.json
│ │ │ │ ├── drawable-xhdpi-v4.json
│ │ │ │ ├── drawable-xxhdpi-v4.json
│ │ │ │ ├── drawable-xxxhdpi-v4.json
│ │ │ │ ├── layout.json
│ │ │ │ ├── layout-sw600dp-v13.json
│ │ │ │ ├── menu.json
│ │ │ │ ├── mipmap-hdpi-v4.json
│ │ │ │ ├── mipmap-mdpi-v4.json
│ │ │ │ ├── mipmap-xhdpi-v4.json
│ │ │ │ ├── mipmap-xxhdpi-v4.json
│ │ │ │ └── mipmap-xxxhdpi-v4.json
│ │ │ ├── classes
│ │ │ │ └── debug
│ │ │ │ ├── android
│ │ │ │ │ └── support
│ │ │ │ │ ├── design
│ │ │ │ │ │ ├── R$anim.class
│ │ │ │ │ │ ├── R$attr.class
│ │ │ │ │ │ ├── R$bool.class
│ │ │ │ │ │ ├── R$color.class
│ │ │ │ │ │ ├── R$dimen.class
│ │ │ │ │ │ ├── R$drawable.class
│ │ │ │ │ │ ├── R$id.class
│ │ │ │ │ │ ├── R$integer.class
│ │ │ │ │ │ ├── R$layout.class
│ │ │ │ │ │ ├── R$string.class
│ │ │ │ │ │ ├── R$styleable.class
│ │ │ │ │ │ ├── R$style.class
│ │ │ │ │ │ └── R.class
│ │ │ │ │ └── v7
│ │ │ │ │ ├── appcompat
│ │ │ │ │ │ ├── R$anim.class
│ │ │ │ │ │ ├── R$attr.class
│ │ │ │ │ │ ├── R$bool.class
│ │ │ │ │ │ ├── R$color.class
│ │ │ │ │ │ ├── R$dimen.class
│ │ │ │ │ │ ├── R$drawable.class
│ │ │ │ │ │ ├── R$id.class
│ │ │ │ │ │ ├── R$integer.class
│ │ │ │ │ │ ├── R$layout.class
│ │ │ │ │ │ ├── R$string.class
│ │ │ │ │ │ ├── R$styleable.class
│ │ │ │ │ │ ├── R$style.class
│ │ │ │ │ │ └── R.class
│ │ │ │ │ └── recyclerview
│ │ │ │ │ ├── R$attr.class
│ │ │ │ │ ├── R$dimen.class
│ │ │ │ │ ├── R$id.class
│ │ │ │ │ ├── R$styleable.class
│ │ │ │ │ └── R.class
│ │ │ │ └── com
│ │ │ │ └── example
│ │ │ │ └── jingyouliu
│ │ │ │ └── touchtest
│ │ │ │ ├── BuildConfig.class
│ │ │ │ ├── ChildViewOne.class
│ │ │ │ ├── ChildViewTwo.class
│ │ │ │ ├── Constants.class
│ │ │ │ ├── MainActivity.class
│ │ │ │ ├── MySurfaceView.class
│ │ │ │ ├── ParentViewGroup.class
│ │ │ │ ├── R$anim.class
│ │ │ │ ├── R$attr.class
│ │ │ │ ├── R$bool.class
│ │ │ │ ├── R$color.class
│ │ │ │ ├── R$dimen.class
│ │ │ │ ├── R$drawable.class
│ │ │ │ ├── R$id.class
│ │ │ │ ├── R$integer.class
│ │ │ │ ├── R$layout.class
│ │ │ │ ├── R$menu.class
│ │ │ │ ├── R$mipmap.class
│ │ │ │ ├── R$string.class
│ │ │ │ ├── R$styleable.class
│ │ │ │ ├── R$style.class
│ │ │ │ ├── R.class
│ │ │ │ ├── TestImageView.class
│ │ │ │ └── TestView.class
│ │ │ ├── exploded-aar
│ │ │ │ └── com.android.support
│ │ │ │ ├── animated-vector-drawable
│ │ │ │ │ └── 23.2.0
│ │ │ │ │ ├── aapt
│ │ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ │ ├── AndroidManifest.xml
│ │ │ │ │ └── jars
│ │ │ │ │ └── classes.jar
│ │ │ │ ├── appcompat-v7
│ │ │ │ │ └── 23.2.0
│ │ │ │ │ ├── aapt
│ │ │ │ │ │ └── AndroidManifest.xml
│ │ │ │ │ ├── AndroidManifest.xml
│ │ │ │ │ ├── annotations.zip
│ │ │ │ │ ├── jars
│ │ │ │ │ │ └── classes.jar
│ │ │ │ │ ├── public.txt
│ │ │ │ │ ├── res
│ │ │ │ │ │ ├── anim
│ │ │ │ │ │ │ ├── abc_fade_in.xml
│ │ │ │ │ │ │ ├── abc_fade_out.xml
│ │ │ │ │ │ │ ├── abc_grow_fade_in_from_bottom.xml
│ │ │ │ │ │ │ ├── abc_popup_enter.xml
│ │ │ │ │ │ │ ├── abc_popup_exit.xml
│ │ │ │ │ │ │ ├── abc_shrink_fade_out_from_bottom.xml
│ │ │ │ │ │ │ ├── abc_slide_in_bottom.xml
│ │ │ │ │ │ │ ├── abc_slide_in_top.xml
│ │ │ │ │ │ │ ├── abc_slide_out_bottom.xml
│ │ │ │ │ │ │ └── abc_slide_out_top.xml
│ │ │ │ │ │ ├── color