VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/adapter/SurveillanceFragment.java
@@ -253,4 +253,63 @@ return JSON.parseObject(JSON.toJSONString(item), CheckInQueryItem.class); } } public static class SurveillancePhotoSelectListViewAdapter extends EasyRecyclerViewAdapter { private Context context; public SurveillancePhotoSelectListViewAdapter(Context context) { this.context = context; } @Override public int[] getItemLayouts() { return new int[]{R.layout.fragment_surveillance_photo_cell}; } @Override public void onBindRecycleViewHolder(EasyRecyclerViewHolder viewHolder, int position) { RelativeLayout mLayout = viewHolder.findViewById(R.id.fragment_surveillance_photo_cell_relative_layout); ViewGroup.LayoutParams layoutParams = mLayout.getLayoutParams(); layoutParams.height = (int)MainActivity.getInstance().getResources().getDimension(R.dimen.h127dp); layoutParams.width = (int)MainActivity.getInstance().getResources().getDimension(R.dimen.h122dp); mLayout.setLayoutParams(layoutParams); ImageView fragment_surveillance_photo_cell_photo = (ImageView) mLayout.findViewById(R.id.fragment_surveillance_photo_cell_photo); final View fragment_surveillance_photo_cell_select = (TextView) mLayout.findViewById(R.id.fragment_surveillance_photo_cell_select); Object data = this.getItem(position); fragment_surveillance_photo_cell_photo.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { fragment_surveillance_photo_cell_select.setVisibility(fragment_surveillance_photo_cell_select.getVisibility() == View.VISIBLE ? View.INVISIBLE : View.VISIBLE ); } }); if (data instanceof SurveillanceQueryItem) { final SurveillanceQueryItem item = (SurveillanceQueryItem)data; if (item.getImagePath() != null && !item.getImagePath().equals("")) { fragment_surveillance_photo_cell_photo.setImageURI(Uri.parse(AppApi.IMAGE_URL_BASE +item.getImagePath())); } else { if (item.getBitmap() != null) { fragment_surveillance_photo_cell_photo.setImageBitmap(item.getBitmap()); } else { fragment_surveillance_photo_cell_photo.setImageResource(R.drawable.u45); } } } } @Override public int getRecycleViewItemType(int position) { return 0; } private CheckInQueryItem getVo(SurveillanceQueryItem item) { return JSON.parseObject(JSON.toJSONString(item), CheckInQueryItem.class); } } } VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/dialog/SurveillancePhotoDialog.java
New file @@ -0,0 +1,185 @@ package cn.com.basic.face.dialog; import android.content.Context; import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.view.Gravity; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.widget.EditText; import android.widget.PopupWindow; import android.widget.RelativeLayout; import android.widget.TextView; import com.bsk.zhangbo.demoforbsk.R; import com.lidroid.xutils.ViewUtils; import com.lidroid.xutils.view.annotation.ViewInject; import com.lidroid.xutils.view.annotation.event.OnClick; import java.util.ArrayList; import java.util.List; import cn.com.basic.face.base.MainActivity; import cn.com.basic.face.dialog.wheelview.adapter.BaseWheelAdapter; import cn.com.basic.face.dialog.wheelview.widget.WheelView; import cn.com.basic.face.discern.common.CommonVariables; import cn.com.basic.face.discern.query.item.SurveillancePhotoQueryItem; import cn.com.basic.face.discern.query.item.SurveillanceQueryItem; import cn.com.basic.face.fragment.SurveillanceFragment; import cn.com.basic.face.util.Constant; import cn.com.basic.face.util.OkClickedListener; import cn.com.basic.face.widget.surveilance.SurveillancePhotoSelectListView; public class SurveillancePhotoDialog extends PopupWindow { private final View parentView; @ViewInject(R.id.dialog_surveillance_photo_select_list_view) private SurveillancePhotoSelectListView dialog_surveillance_photo_select_list_view; private List list = new ArrayList(); public static List visitorTypeList = new ArrayList(); public static List genderList = new ArrayList(); public static List idTypeList = new ArrayList(); public static List visitReasonList = new ArrayList(); public static void setVisitorTypeList(List visitorTypeList) { AddDialog.visitorTypeList = visitorTypeList; } public static void setGenderList(List genderList) { AddDialog.genderList = genderList; } public static void setIdTypeList(List idTypeList) { AddDialog.idTypeList = idTypeList; } public SurveillancePhotoDialog(View parentView, int type, OkClickedListener okButtonClickedListener) { this.parentView = parentView; View view = LayoutInflater.from(MainActivity.getInstance()).inflate(R.layout.dialog_surveillance_photo_select,null); ViewUtils.inject(this, view); List<SurveillanceQueryItem> prevVisitorList = SurveillanceFragment.getInstance().get_fragment_supervisory_bottom_visitor_list_view().getPrevList(); List<SurveillanceQueryItem> registerList = new ArrayList(); for (SurveillanceQueryItem surveillanceQueryItem : prevVisitorList) { if (surveillanceQueryItem.getRegisterOrCheckIn() == CommonVariables.Surveillance.VISIT_REGISTER_ITEM_TYPE) { registerList.add(surveillanceQueryItem); } } for (int i = 0; i < 2; i++) { SurveillanceQueryItem item = new SurveillanceQueryItem(); registerList.add(item); } dialog_surveillance_photo_select_list_view.show(registerList); setTitleAndList(type); WheelView.WheelViewStyle style = new WheelView.WheelViewStyle(); style.selectedTextColor = Color.parseColor("#11c3e3"); style.textColor = Color.parseColor("#bcc6cf"); style.selectedTextSize = 22; style.textSize = 16; style.holoBorderColor = Color.parseColor("#11c3e3"); view.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View view, MotionEvent motionEvent) { View popLayout = view.findViewById(R.id.dialog_add_linear_layout); int top = popLayout.getTop(); int bottom = popLayout.getBottom(); int left = popLayout.getLeft(); int right = popLayout.getRight(); int y = (int) motionEvent.getY(); int x = (int) motionEvent.getX(); if (motionEvent.getAction() == MotionEvent.ACTION_UP){ if (y<top || y> bottom){ dismiss(); } if (x < left || x > right){ dismiss(); } } return true; } }); setOutsideTouchable(true); this.setContentView(view); this.setHeight(RelativeLayout.LayoutParams.MATCH_PARENT); this.setWidth(RelativeLayout.LayoutParams.MATCH_PARENT); this.setFocusable(true); this.setBackgroundDrawable(new ColorDrawable(0x7f000000)); this.setAnimationStyle(R.style.PopupAnimation); okButtonClickedListeners.add(okButtonClickedListener); this.showAtLocation(parentView, Gravity.BOTTOM,0,330); } @OnClick(R.id.dialog_add_ok) public void dialog_add_ok_click(View view) { for (OkClickedListener okButtonClickedListener : okButtonClickedListeners) { // okButtonClickedListener.onSelected(dialog_add_content.getText().toString()); } dismiss(); } @OnClick(R.id.dialog_add_cancel) public void dialog_add_cancel_click(View view) { dismiss(); } private List<OkClickedListener> okButtonClickedListeners = new ArrayList<OkClickedListener>(); public void addOkButtonClickedListener(OkClickedListener okButtonClickedListener) { this.okButtonClickedListeners.add(okButtonClickedListener); } private void setTitleAndList(int type) { String tile = ""; switch (type) { case Constant.DialogSelectType.VISIT_REASON_ADD: tile = "添加访问事由"; break; } // dialog_add_title.setText(tile); } public static void setVisitReasonList(List visitReasonList) { AddDialog.visitReasonList = visitReasonList; } public static class WheelAdapter extends BaseWheelAdapter<String> { private Context mContext; public WheelAdapter(Context context) { mContext = context; } @Override protected View bindView(int position, View convertView, ViewGroup parent) { AddDialog.WheelAdapter.ViewHolder viewHolder; if (convertView == null) { viewHolder = new AddDialog.WheelAdapter.ViewHolder(); convertView = LayoutInflater.from(mContext).inflate(R.layout.dialog_row, null); viewHolder.textView = (TextView) convertView.findViewById(R.id.item_wheel_name); convertView.setTag(viewHolder); } else { viewHolder = (AddDialog.WheelAdapter.ViewHolder) convertView.getTag(); } viewHolder.textView.setText(mList.get(position)+""); return convertView; } static class ViewHolder { TextView textView; } } } VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/discern/query/item/SurveillancePhotoQueryItem.java
New file @@ -0,0 +1,4 @@ package cn.com.basic.face.discern.query.item; public class SurveillancePhotoQueryItem { } VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/RegisterFragment.java
@@ -17,6 +17,7 @@ import cn.com.basic.face.base.BaseApplication; import cn.com.basic.face.base.BaseFragment; import cn.com.basic.face.dialog.SurveillancePhotoDialog; import cn.com.basic.face.discern.common.CommonVariables; import cn.com.basic.face.discern.entity.Register; import cn.com.basic.face.discern.query.condition.SurveillanceQueryCondition; @@ -380,10 +381,15 @@ @OnClick(R.id.fragment_register_surveillance_photo) public void fragment_register_surveillance_photo_click(View view) { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, "选择图片"), fragment_register_surveillance_photo_); // Intent intent = new Intent(); // intent.setType("image/*"); // intent.setAction(Intent.ACTION_GET_CONTENT); // startActivityForResult(Intent.createChooser(intent, "选择图片"), fragment_register_surveillance_photo_); new SurveillancePhotoDialog(fragment_register_linear_layout, Constant.DialogSelectType.ID_TYPE, new OkClickedListener() { public void onSelected(String value) { fragment_register_id_class.setValue(value); } }); } @OnClick(R.id.fragment_register_upload_custom_photo) VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/fragment/SurveillanceFragment.java
@@ -1,5 +1,6 @@ package cn.com.basic.face.fragment; import android.os.Build; import android.os.Bundle; import android.view.SurfaceView; import android.view.View; @@ -49,7 +50,23 @@ static boolean useNative = true; public static boolean isEmulator() { return Build.FINGERPRINT.startsWith("generic") || Build.FINGERPRINT.startsWith("unknown") || Build.MODEL.contains("google_sdk") || Build.MODEL.contains("Emulator") || Build.MODEL.contains("Android SDK built for x86") || Build.MANUFACTURER.contains("Genymotion") || (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic")) || "google_sdk".equals(Build.PRODUCT); } static { if (isEmulator()) { useNative = false; } else { useNative = true; } if (useNative) { System.loadLibrary("cvface_api"); System.loadLibrary("opencv_java3"); @@ -58,7 +75,8 @@ System.loadLibrary("protoc"); System.loadLibrary("rtspface"); RtspFaceNative.init(); RtspFaceNative.setLocalIP("192.168.1.10"); // RtspFaceNative.setLocalIP("192.168.1.10"); RtspFaceNative.setLocalIP("192.168.1.106");//自己手机ip } } VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/widget/surveilance/SurveillancePhotoSelectListView.java
New file @@ -0,0 +1,83 @@ package cn.com.basic.face.widget.surveilance; import android.content.Context; import android.graphics.Rect; import android.os.Parcelable; import android.support.v7.widget.GridLayoutManager; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.AttributeSet; import android.view.View; import com.camnter.easyrecyclerview.widget.EasyRecyclerView; import java.util.ArrayList; import java.util.List; import cn.com.basic.face.adapter.SurveillanceFragment; import cn.com.basic.face.base.MainActivity; import cn.com.basic.face.util.WindowsUtil; public class SurveillancePhotoSelectListView extends EasyRecyclerView { private Parcelable recyclerViewState; private class SpaceItemDecoration extends ItemDecoration { @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, State state) { super.getItemOffsets(outRect, view, parent, state); outRect.right = WindowsUtil.dip2px(MainActivity.getInstance(), 15); if (parent.getChildLayoutPosition(view) == 0 || parent.getChildLayoutPosition(view) == 1) { outRect.left = WindowsUtil.dip2px(MainActivity.getInstance(), 14); } if (parent.getChildLayoutPosition(view) % 2 == 0) { outRect.bottom = WindowsUtil.dip2px(MainActivity.getInstance(), 7); } } } public void initLayout() { addItemDecoration(new SpaceItemDecoration()); GridLayoutManager gridLayoutManager = new GridLayoutManager(MainActivity.getInstance(), 2); gridLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL); setLayoutManager(gridLayoutManager); } private SurveillanceFragment.SurveillancePhotoSelectListViewAdapter mAdapter; private List list = new ArrayList(); public void setAdapter(Context context) { mAdapter = new SurveillanceFragment.SurveillancePhotoSelectListViewAdapter(context); mAdapter.setList(list); setAdapter(mAdapter); initLayout(); } public SurveillancePhotoSelectListView(Context context) { super(context); setAdapter(context); } public SurveillancePhotoSelectListView(Context context, AttributeSet attrs) { super(context, attrs); setAdapter(context); } public SurveillancePhotoSelectListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); setAdapter(context); } public void show(List list) { recyclerViewState = this.getLayoutManager().onSaveInstanceState(); mAdapter.setList(list); this.setAdapter(mAdapter); this.getLayoutManager().onRestoreInstanceState(recyclerViewState); } public List getPrevList() { return this.list; } } VisitFace/DemoForBsk/app/src/main/res/drawable/u241.png
VisitFace/DemoForBsk/app/src/main/res/layout/dialog_surveillance_photo_select.xml
New file @@ -0,0 +1,74 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:gravity="center" android:layout_width="match_parent" android:layout_height="wrap_content" > <View android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" android:visibility="invisible" /> <LinearLayout android:id="@+id/dialog_add_linear_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:background="@android:color/white" android:orientation="vertical" android:layout_weight="0" > <TextView android:id="@+id/dialog_add_title" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="@dimen/w20dp" android:gravity="center" android:textColor="@android:color/white" android:textSize="@dimen/w20dp" android:background="@color/colorPrimary" android:visibility="gone" /> <cn.com.basic.face.widget.surveilance.SurveillancePhotoSelectListView android:id="@+id/dialog_surveillance_photo_select_list_view" android:layout_width="wrap_content" android:layout_height="@dimen/h300dp" android:background="@android:color/white" android:orientation="vertical"/> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="@color/colorText_b" android:visibility="gone" /> <LinearLayout android:layout_width="match_parent" android:layout_height="@dimen/h50dp" android:orientation="horizontal" android:visibility="gone" > <TextView android:id="@+id/dialog_add_ok" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="match_parent" android:gravity="center" android:text="@string/confirm" android:textSize="@dimen/w16dp"/> <View android:layout_width="0.5dp" android:layout_height="match_parent" android:background="@color/colorText_5"/> <TextView android:id="@+id/dialog_add_cancel" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="match_parent" android:gravity="center" android:text="@string/cancel" android:textSize="@dimen/w16dp"/> </LinearLayout> </LinearLayout> </LinearLayout> VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance.xml
@@ -56,7 +56,9 @@ android:textSize="@dimen/w14dp" android:textColor="@android:color/white" android:layout_marginLeft="@dimen/w16dp" android:text="2016年12月5日 17:03:42分"/> android:text="2016年12月5日 17:03:42分" android:visibility="gone" /> <TextView android:layout_width="wrap_content" @@ -97,6 +99,7 @@ android:layout_marginLeft="@dimen/w16dp" android:text="2016年12月5日 17:03:42分" android:id="@+id/fragment_surveillance_exit_timer" android:visibility="gone" /> <TextView VisitFace/DemoForBsk/app/src/main/res/layout/fragment_surveillance_photo_cell.xml
New file @@ -0,0 +1,62 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/fragment_surveillance_photo_cell_relative_layout" android:layout_width="wrap_content" android:layout_height="wrap_content" xmlns:fresco="http://schemas.android.com/apk/res-auto" > <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content"> <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/fragment_surveillance_photo_cell_photo" android:layout_width="@dimen/w122dp" android:layout_height="@dimen/h127dp" android:layout_alignParentBottom="true" android:scaleType="centerCrop" android:paddingTop="@dimen/h15dp" android:paddingRight="@dimen/w5dp" android:paddingLeft="@dimen/w5dp" fresco:roundedCornerRadius="@dimen/w5dp" android:background="#14000000" /> <com.facebook.drawee.view.SimpleDraweeView android:id="@+id/fragment_surveillance_photo_cell_photo1" android:layout_width="@dimen/w122dp" android:layout_height="@dimen/h127dp" android:layout_alignParentBottom="true" android:scaleType="centerCrop" android:paddingTop="@dimen/h15dp" android:paddingRight="@dimen/w5dp" android:paddingLeft="@dimen/w5dp" fresco:roundedCornerRadius="@dimen/w5dp" android:alpha="0.55" /> </RelativeLayout> <!--<TextView android:id="@+id/fragment_surveillance_photo_cell_select" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/u241" android:gravity="center" android:layout_marginBottom="@dimen/h20dp" android:layout_marginLeft="@dimen/w70dp" android:layout_alignParentBottom="true" android:textColor="@android:color/white" android:layout_alignParentLeft="true" android:visibility="invisible" />--> <ImageView android:id="@+id/fragment_surveillance_photo_cell_select" android:layout_width="@dimen/w50dp" android:layout_height="@dimen/h50dp" android:src="@drawable/u241" android:gravity="center" android:layout_marginBottom="@dimen/h20dp" android:layout_marginLeft="@dimen/w60dp" android:layout_alignParentBottom="true" android:textColor="@android:color/white" android:layout_alignParentLeft="true" /> </RelativeLayout>