This commit is contained in:
ScorpioMiku
2018-09-03 15:17:48 +08:00
parent ff78b1b314
commit c5595d4d15
9 changed files with 164 additions and 21 deletions

View File

@@ -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

View File

@@ -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));
}

View File

@@ -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;
}
}

View File

@@ -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);
}
}

View File

@@ -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("权限赋予成功");
}
}

View File

@@ -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);
}
}

View File

@@ -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 {
/**
* 否则
*/
}
}
}