Skip to content

Commit

Permalink
优化camera的setContentView方法
Browse files Browse the repository at this point in the history
  • Loading branch information
aaatttcccc committed Aug 26, 2022
1 parent 18739c6 commit 208278d
Show file tree
Hide file tree
Showing 6 changed files with 162 additions and 181 deletions.
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
package com.zhongjh.cameraapp.phone.customlayout.camera1;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.widget.AppCompatButton;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.databinding.DataBindingUtil;
import androidx.recyclerview.widget.RecyclerView;

import com.otaliastudios.cameraview.CameraView;
Expand All @@ -17,16 +18,16 @@
import com.zhongjh.albumcamerarecorder.camera.ui.camera.presenter.BaseCameraVideoPresenter;
import com.zhongjh.albumcamerarecorder.camera.ui.camera.state.CameraStateManagement;
import com.zhongjh.albumcamerarecorder.camera.widget.PhotoVideoLayout;
import com.zhongjh.albumcamerarecorder.widget.childclickable.ChildClickableRelativeLayout;
import com.zhongjh.albumcamerarecorder.widget.childclickable.IChildClickableLayout;
import com.zhongjh.cameraapp.R;
import com.zhongjh.cameraapp.databinding.FragmentCamera1Binding;

/**
* 继承于BaseCameraFragment
* 1. setContentView 实现自己想要的布局
* 2. 实现相关view
* 3. 使用默认的 BaseCameraPicturePresenter、BaseCameraVideoPresenter、CameraStateManagement
*
* <p>
* 该Fragment的例子让我们增加几个view,添加我们想要的事件。
* 使用 TODO 关键字可搜索相关自定义代码
*
Expand All @@ -35,7 +36,7 @@
*/
public class CameraFragment1 extends BaseCameraFragment<CameraStateManagement, BaseCameraPicturePresenter, BaseCameraVideoPresenter> {

ViewHolder mViewHolder;
FragmentCamera1Binding mBinding;
BaseCameraPicturePresenter cameraPicturePresenter = new BaseCameraPicturePresenter(this);
BaseCameraVideoPresenter cameraVideoPresenter = new BaseCameraVideoPresenter(this);
CameraStateManagement cameraStateManagement = new CameraStateManagement(this);
Expand All @@ -45,13 +46,13 @@ public static CameraFragment1 newInstance() {
}

@Override
public int setContentView() {
return R.layout.fragment_camera1;
public View setContentView(LayoutInflater inflater, ViewGroup container) {
mBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_camera1,container,false);
return mBinding.getRoot();
}

@Override
public void initView(View view, Bundle savedInstanceState) {
mViewHolder = new ViewHolder(view);
}

/**
Expand All @@ -61,66 +62,66 @@ public void initView(View view, Bundle savedInstanceState) {
@Override
protected void initListener() {
super.initListener();
mViewHolder.btnCustom.setOnClickListener(v -> Toast.makeText(getMyContext(), "我是自定义的", Toast.LENGTH_SHORT).show());
mBinding.btnCustom.setOnClickListener(v -> Toast.makeText(getMyContext(), "我是自定义的", Toast.LENGTH_SHORT).show());
}

@NonNull
@Override
public IChildClickableLayout getChildClickableLayout() {
return mViewHolder.rlMain;
return mBinding.rlMain;
}

@Nullable
@Override
public View getTopView() {
return mViewHolder.clMenu;
return mBinding.clMenu;
}

@NonNull
@Override
public CameraView getCameraView() {
return mViewHolder.cameraView;
return mBinding.cameraView;
}

@Override
public RecyclerView getRecyclerViewPhoto() {
return mViewHolder.rlPhoto;
return mBinding.rlPhoto;
}

@Nullable
@Override
public View[] getMultiplePhotoView() {
return new View[]{mViewHolder.vLine1, mViewHolder.vLine2};
return new View[]{mBinding.vLine1, mBinding.vLine2};
}

@NonNull
@Override
public PhotoVideoLayout getPhotoVideoLayout() {
return mViewHolder.pvLayout;
return mBinding.pvLayout;
}

@NonNull
@Override
public com.zhongjh.albumcamerarecorder.widget.ImageViewTouch getSinglePhotoView() {
return mViewHolder.imgPhoto;
return mBinding.imgPhoto;
}

@Nullable
@Override
public View getCloseView() {
return mViewHolder.imgClose;
return mBinding.imgClose;
}

@Nullable
@Override
public ImageView getFlashView() {
return mViewHolder.imgFlash;
return mBinding.imgFlash;
}

@Nullable
@Override
public ImageView getSwitchView() {
return mViewHolder.imgSwitch;
return mBinding.imgSwitch;
}

@NonNull
Expand All @@ -141,37 +142,4 @@ public BaseCameraVideoPresenter getCameraVideoPresenter() {
return cameraVideoPresenter;
}

public static class ViewHolder {

View rootView;
ChildClickableRelativeLayout rlMain;
com.zhongjh.albumcamerarecorder.widget.ImageViewTouch imgPhoto;
ImageView imgFlash;
ImageView imgSwitch;
PhotoVideoLayout pvLayout;
RecyclerView rlPhoto;
View vLine1;
View vLine2;
ImageView imgClose;
CameraView cameraView;
ConstraintLayout clMenu;
AppCompatButton btnCustom;

ViewHolder(View rootView) {
this.rootView = rootView;
this.rlMain = rootView.findViewById(R.id.rlMain);
this.imgPhoto = rootView.findViewById(R.id.imgPhoto);
this.imgFlash = rootView.findViewById(R.id.imgFlash);
this.imgSwitch = rootView.findViewById(R.id.imgSwitch);
this.pvLayout = rootView.findViewById(R.id.pvLayout);
this.rlPhoto = rootView.findViewById(R.id.rlPhoto);
this.vLine1 = rootView.findViewById(R.id.vLine1);
this.vLine2 = rootView.findViewById(R.id.vLine2);
this.imgClose = rootView.findViewById(R.id.imgClose);
this.cameraView = rootView.findViewById(R.id.cameraView);
this.clMenu = rootView.findViewById(R.id.clMenu);
this.btnCustom = rootView.findViewById(R.id.btnCustom);
}
}

}
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.zhongjh.cameraapp.phone.customlayout.camera2;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import androidx.annotation.NonNull;
Expand All @@ -23,7 +25,7 @@
/**
* 继承于BaseCameraFragment
* 主要演示 BaseCameraPicturePresenter
*
* <p>
* 使用 TODO 关键字可搜索相关自定义代码
*
* @author zhongjh
Expand All @@ -41,8 +43,8 @@ public static CameraFragment2 newInstance() {
}

@Override
public int setContentView() {
return R.layout.fragment_camera_zjh;
public View setContentView(LayoutInflater inflater, ViewGroup container) {
return inflater.inflate(R.layout.fragment_camera_zjh, container, false);
}

@Override
Expand Down
Loading

0 comments on commit 208278d

Please sign in to comment.