camera
This commit is contained in:
@@ -9,6 +9,7 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.example.ninefourone.nutritionmaster.R;
|
||||
import com.example.ninefourone.nutritionmaster.bean.DailyCard;
|
||||
import com.orhanobut.logger.Logger;
|
||||
|
||||
import java.util.ArrayList;
|
||||
@@ -19,19 +20,10 @@ import java.util.ArrayList;
|
||||
|
||||
public class CardAdapter extends RecyclerView.Adapter<CardHolder> {
|
||||
private Context context;
|
||||
private ArrayList<String> mList;
|
||||
private int[] picList = new int[]{
|
||||
R.drawable.monday,
|
||||
R.drawable.tuesday,
|
||||
R.drawable.wednesday,
|
||||
R.drawable.thursday,
|
||||
R.drawable.friday,
|
||||
R.drawable.saturday,
|
||||
R.drawable.sunday
|
||||
};
|
||||
private ArrayList<DailyCard> mList;
|
||||
|
||||
|
||||
public CardAdapter(Context context, ArrayList<String> mList) {
|
||||
public CardAdapter(Context context, ArrayList<DailyCard> mList) {
|
||||
this.context = context;
|
||||
this.mList = mList;
|
||||
}
|
||||
@@ -47,7 +39,7 @@ public class CardAdapter extends RecyclerView.Adapter<CardHolder> {
|
||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
||||
@Override
|
||||
public void onBindViewHolder(CardHolder holder, int position) {
|
||||
holder.bindView(picList[position], mList.get(position), context);
|
||||
holder.bindView(mList.get(position).getPictureId(), mList.get(position).getTitle(), context);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -37,6 +37,7 @@ public class CardHolder extends RecyclerView.ViewHolder {
|
||||
public void bindView(int picId, String text, Context context) {
|
||||
tvName.setText(text);
|
||||
ivPhoto.setImageDrawable(context.getDrawable(picId));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.example.ninefourone.nutritionmaster.bean;
|
||||
|
||||
/**
|
||||
* Created by ScorpioMiku on 2018/9/3.
|
||||
*/
|
||||
|
||||
public class DailyCard {
|
||||
/***
|
||||
* 每日卡片bean类
|
||||
*/
|
||||
private String title;
|
||||
private String description;
|
||||
private int pictureId;
|
||||
|
||||
public DailyCard(String title, String description, int pictureId) {
|
||||
this.title = title;
|
||||
this.description = description;
|
||||
this.pictureId = pictureId;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public void setDescription(String description) {
|
||||
this.description = description;
|
||||
}
|
||||
|
||||
public int getPictureId() {
|
||||
return pictureId;
|
||||
}
|
||||
|
||||
public void setPictureId(int pictureId) {
|
||||
this.pictureId = pictureId;
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,13 @@
|
||||
package com.example.ninefourone.nutritionmaster.camera;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.hardware.Camera;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.v7.app.AppCompatActivity;
|
||||
import android.view.Surface;
|
||||
import android.view.View;
|
||||
import android.view.Window;
|
||||
import android.view.WindowManager;
|
||||
@@ -38,6 +40,7 @@ public class FoodMaterialCamera extends AppCompatActivity {
|
||||
|
||||
private Camera mCamera;
|
||||
private CameraPreview mPreview;
|
||||
private int mCameraId = Camera.CameraInfo.CAMERA_FACING_BACK;
|
||||
|
||||
|
||||
@Override
|
||||
@@ -58,6 +61,8 @@ public class FoodMaterialCamera extends AppCompatActivity {
|
||||
} else {
|
||||
openCamera();
|
||||
}
|
||||
|
||||
setCameraDisplayOrientation(this, mCameraId, mCamera);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -153,4 +158,40 @@ public class FoodMaterialCamera extends AppCompatActivity {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//将相机设置成竖屏
|
||||
public static void setCameraDisplayOrientation(Activity activity, int cameraId, Camera camera) {
|
||||
|
||||
int degrees = 0;
|
||||
|
||||
//可以获得摄像头信息
|
||||
Camera.CameraInfo info = new Camera.CameraInfo();
|
||||
Camera.getCameraInfo(cameraId, info);
|
||||
|
||||
//获取屏幕旋转方向
|
||||
int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
|
||||
|
||||
switch (rotation) {
|
||||
case Surface.ROTATION_0:
|
||||
degrees = 0;
|
||||
break;
|
||||
case Surface.ROTATION_90:
|
||||
degrees = 90;
|
||||
break;
|
||||
case Surface.ROTATION_180:
|
||||
degrees = 180;
|
||||
break;
|
||||
case Surface.ROTATION_270:
|
||||
degrees = 270;
|
||||
break;
|
||||
}
|
||||
int result;
|
||||
if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
|
||||
result = (info.orientation + degrees) % 360;
|
||||
result = (360 - result) % 360;
|
||||
} else {
|
||||
result = (info.orientation - degrees + 360) % 360;
|
||||
}
|
||||
camera.setDisplayOrientation(result);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package com.example.ninefourone.nutritionmaster.modules;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.content.Intent;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.RequiresApi;
|
||||
import android.support.v7.widget.Toolbar;
|
||||
import android.view.LayoutInflater;
|
||||
@@ -18,14 +20,17 @@ import com.cb.ratingbar.CBRatingBar;
|
||||
import com.example.ninefourone.nutritionmaster.R;
|
||||
import com.example.ninefourone.nutritionmaster.adapter.HomePagerAdapter;
|
||||
import com.example.ninefourone.nutritionmaster.base.BaseActivity;
|
||||
import com.example.ninefourone.nutritionmaster.camera.FoodMaterialCamera;
|
||||
import com.example.ninefourone.nutritionmaster.ui.NoScrollViewPager;
|
||||
import com.example.ninefourone.nutritionmaster.utils.MessageUtils;
|
||||
import com.example.ninefourone.nutritionmaster.utils.PermissionUtils;
|
||||
import com.flyco.tablayout.SlidingTabLayout;
|
||||
import com.github.siyamed.shapeimageview.CircularImageView;
|
||||
import com.miguelcatalan.materialsearchview.MaterialSearchView;
|
||||
import com.mxn.soul.flowingdrawer_core.ElasticDrawer;
|
||||
import com.mxn.soul.flowingdrawer_core.FlowingDrawer;
|
||||
import com.nightonke.boommenu.BoomButtons.HamButton;
|
||||
import com.nightonke.boommenu.BoomButtons.OnBMClickListener;
|
||||
import com.nightonke.boommenu.BoomMenuButton;
|
||||
import com.orhanobut.logger.Logger;
|
||||
|
||||
@@ -131,6 +136,7 @@ public class MainActivity extends BaseActivity {
|
||||
ButterKnife.bind(this);
|
||||
Logger.d("oncreate");
|
||||
setSupportActionBar(toolBar);
|
||||
askPermission();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -210,16 +216,33 @@ public class MainActivity extends BaseActivity {
|
||||
* 初始化悬浮按钮
|
||||
*/
|
||||
private void initBMB() {
|
||||
|
||||
HamButton.Builder builder = new HamButton.Builder()
|
||||
.normalImageRes(R.drawable.food_material)
|
||||
.normalTextRes(R.string.food_meterial_title);
|
||||
.normalTextRes(R.string.food_meterial_title)
|
||||
.listener(new OnBMClickListener() {
|
||||
@Override
|
||||
public void onBoomButtonClick(int index) {
|
||||
Intent cameraIntent = new Intent(MainActivity.this, FoodMaterialCamera.class);
|
||||
startActivity(cameraIntent);
|
||||
}
|
||||
});
|
||||
boomMenuButton.addBuilder(builder);
|
||||
HamButton.Builder builder2 = new HamButton.Builder()
|
||||
.normalImageRes(R.drawable.foods)
|
||||
.normalTextRes(R.string.food_title);
|
||||
boomMenuButton.addBuilder(builder2);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 请求权限
|
||||
*/
|
||||
private void askPermission() {
|
||||
PermissionUtils.requestCameraPermission(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
MessageUtils.MakeToast("权限赋予成功");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.example.ninefourone.nutritionmaster.R;
|
||||
import com.example.ninefourone.nutritionmaster.adapter.CardAdapter;
|
||||
import com.example.ninefourone.nutritionmaster.adapter.CardHolder;
|
||||
import com.example.ninefourone.nutritionmaster.base.BaseFragment;
|
||||
import com.example.ninefourone.nutritionmaster.bean.DailyCard;
|
||||
import com.example.ninefourone.nutritionmaster.cardconfig.CardConfig;
|
||||
import com.example.ninefourone.nutritionmaster.cardconfig.CardItemTouchCallBack;
|
||||
import com.example.ninefourone.nutritionmaster.cardconfig.SwipeCardLayoutManager;
|
||||
@@ -34,7 +35,18 @@ public class CustomizationFragment extends BaseFragment {
|
||||
|
||||
private CardAdapter cardAdapter;
|
||||
private CardHolder cardHolder;
|
||||
private ArrayList<String> mDataList = new ArrayList<>();
|
||||
private ArrayList<DailyCard> mDataList = new ArrayList<>();
|
||||
|
||||
private int[] picList = new int[]{
|
||||
R.drawable.monday,
|
||||
R.drawable.tuesday,
|
||||
R.drawable.wednesday,
|
||||
R.drawable.thursday,
|
||||
R.drawable.friday,
|
||||
R.drawable.saturday,
|
||||
R.drawable.sunday
|
||||
};
|
||||
|
||||
|
||||
@Override
|
||||
public int getLayoutResId() {
|
||||
@@ -70,7 +82,13 @@ public class CustomizationFragment extends BaseFragment {
|
||||
protected void loadData() {
|
||||
super.loadData();
|
||||
for (int i = 1; i <= 7; i++) {
|
||||
mDataList.add("周" + ConstantUtils.arab2Chinese(i) + "美食普");
|
||||
// mDataList.add("周" + ConstantUtils.arab2Chinese(i) + "美食普");
|
||||
DailyCard dailyCard = new DailyCard(
|
||||
"周" + ConstantUtils.arab2Chinese(i) + "美食普",
|
||||
"这里放描述",
|
||||
picList[i - 1]
|
||||
);
|
||||
mDataList.add(dailyCard);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,5 +108,4 @@ public class CustomizationFragment extends BaseFragment {
|
||||
itemTouchHelper.attachToRecyclerView(cardRecyclerView);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,19 +1,44 @@
|
||||
package com.example.ninefourone.nutritionmaster.utils;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Build;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
|
||||
/**
|
||||
* Created by ScorpioMiku on 2018/9/3.
|
||||
*/
|
||||
|
||||
public class PermissionUtils {
|
||||
public static final int REQUEST_CAMERA = 1056;
|
||||
|
||||
/**
|
||||
* 动态获取相机权限
|
||||
* @param context
|
||||
* @param photoFromCamera
|
||||
*
|
||||
* @param activity
|
||||
*/
|
||||
public static void requestCameraPermission(Context context, String photoFromCamera) {
|
||||
public static void requestCameraPermission(Activity activity) {
|
||||
if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.CAMERA)
|
||||
!= PackageManager.PERMISSION_GRANTED) {
|
||||
/**
|
||||
* 直接请求四个权限
|
||||
*/
|
||||
ActivityCompat.requestPermissions(activity,
|
||||
new String[]{
|
||||
Manifest.permission.CAMERA,
|
||||
Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE,
|
||||
Manifest.permission.READ_PHONE_STATE
|
||||
}, REQUEST_CAMERA);
|
||||
// MessageUtils.MakeToast("权限赋予成功");
|
||||
} else {
|
||||
/**
|
||||
* 否则
|
||||
*/
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user