From 9762633ecd6de795d7cc67163145f38f86b8a501 Mon Sep 17 00:00:00 2001 From: ScorpioMiku <1056992492@qq.com> Date: Thu, 4 Oct 2018 20:03:10 +0800 Subject: [PATCH] =?UTF-8?q?dish=20=E8=AF=86=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- app/src/main/AndroidManifest.xml | 2 +- .../nutritionmaster/NutritionMaster.java | 2 +- .../nutritionmaster/bean/ClassifyResult.java | 60 ++++++++++ ...erialCamera.java => ClassifierCamera.java} | 104 ++++++++++++++---- .../nutritionmaster/modules/MainActivity.java | 17 ++- .../nutritionmaster/utils/ConstantUtils.java | 2 + .../nutritionmaster/utils/WebUtils.java | 61 ++++++++++ app/src/main/res/drawable/camera_bg.jpg | Bin 0 -> 41199 bytes app/src/main/res/drawable/ic_ok.xml | 3 +- app/src/main/res/drawable/ic_take_photo.xml | 5 + app/src/main/res/layout/cameras_layout.xml | 10 +- todaystepcounterlib/.gitignore | 9 ++ 13 files changed, 245 insertions(+), 32 deletions(-) create mode 100644 app/src/main/java/com/example/ninefourone/nutritionmaster/bean/ClassifyResult.java rename app/src/main/java/com/example/ninefourone/nutritionmaster/camera/{FoodMaterialCamera.java => ClassifierCamera.java} (59%) create mode 100644 app/src/main/res/drawable/camera_bg.jpg create mode 100644 app/src/main/res/drawable/ic_take_photo.xml diff --git a/README.md b/README.md index 0656f32..17b1564 100644 --- a/README.md +++ b/README.md @@ -182,6 +182,6 @@ * POST新建用户信息`params`示例 * 1♂ 0♀ - * `occupation_name`,`physique`的值必须和数据库对应 + * `occupation_name`,`physical_name`的值必须和数据库对应 ![](http://ww1.sinaimg.cn/large/0077h8xtly1fvjbfh6vm1j30r70eh3zj.jpg) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ed366fe..58bb53a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,7 +44,7 @@ - + resultList = new ArrayList<>(); + + private int code = -1; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - + Intent intent = getIntent(); + code = intent.getIntExtra("CODE", -1); //取消toolbar requestWindowFeature(Window.FEATURE_NO_TITLE); //设置全屏 @@ -59,9 +76,6 @@ public class FoodMaterialCamera extends AppCompatActivity { //注意:上面两个设置必须写在setContentView前面 setContentView(R.layout.cameras_layout); ButterKnife.bind(this); - Display display = getWindowManager().getDefaultDisplay(); - widthPixel = display.getWidth(); - heightPixel = display.getHeight() * (14.0f / 16); if (!checkCameraHardware(this)) { MessageUtils.MakeToast("不支持相机"); @@ -101,13 +115,6 @@ public class FoodMaterialCamera extends AppCompatActivity { if (null == mCamera) { mCamera = getCameraInstance(); mPreview = new CameraPreview(this, mCamera); -// mPreview.setOnTouchListener(new View.OnTouchListener() { -// @Override -// public boolean onTouch(View v, MotionEvent event) { -// mCamera.autoFocus(null); -// return false; -// } -// }); mCameraLayout.addView(mPreview); mCamera.startPreview(); } @@ -124,8 +131,10 @@ public class FoodMaterialCamera extends AppCompatActivity { c = Camera.open(); Camera.Parameters mParameters = c.getParameters(); - Logger.d(widthPixel+", "+heightPixel); - mParameters.setPictureSize(widthPixel, (int) heightPixel); + List sizes = mParameters.getSupportedPreviewSizes(); + + mParameters.setPictureSize(2048, 1536); + mParameters.setPreviewSize(2048, 1536); c.setParameters(mParameters); } catch (Exception e) { e.printStackTrace(); @@ -152,7 +161,45 @@ public class FoodMaterialCamera extends AppCompatActivity { private Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() { @Override public void onPictureTaken(final byte[] data, Camera camera) { - MessageUtils.MakeToast("拍照!"); + try { + String imgStr = Base64.encodeToString(data, Base64.DEFAULT); + String imgParam = URLEncoder.encode(imgStr, "UTF-8"); + final String param = "image=" + imgParam + "&top_num=" + 1; + Thread thread = new Thread(new Runnable() { + @Override + public void run() { + String result = null; + try { + if (code == 0) { + result = WebUtils.HttpPost(ConstantUtils.BD_DISH_URL, + ConstantUtils.BD_ACCESS_TOKEN, param); + } else if (code == 1) { + result = WebUtils.HttpPost(ConstantUtils.BD_DISH_URL, + ConstantUtils.BD_ACCESS_TOKEN, param); + } else { + Logger.e("拍照code为-1"); + } + JSONObject jsonObject = new JSONObject(result); + ClassifyResult classifyResult = new ClassifyResult(); + JSONArray resultObject = jsonObject.getJSONArray("result"); + jsonObject = resultObject.getJSONObject(0); + classifyResult.setCalorie(jsonObject.getInt("calorie")); + classifyResult.setHas_calorie(jsonObject.getBoolean("has_calorie")); + classifyResult.setProbability(jsonObject.getDouble("probability")); + classifyResult.setName(jsonObject.getString("name")); + Logger.d(classifyResult); + resultList.add(classifyResult); + refreshUI(); + } catch (Exception e) { + e.printStackTrace(); + } + } + }); + thread.start(); + } catch (Exception e) { + e.printStackTrace(); + } +// MessageUtils.MakeToast("拍照!"); mCamera.startPreview(); } }; @@ -168,8 +215,10 @@ public class FoodMaterialCamera extends AppCompatActivity { switch (view.getId()) { case R.id.more_take_photo_button_capture: mCamera.autoFocus(mAutoFocusCallback); + cameraCoverLinearlayout.setVisibility(View.VISIBLE); break; case R.id.more_takephoto_ok: + resultList.clear(); break; } } @@ -209,4 +258,19 @@ public class FoodMaterialCamera extends AppCompatActivity { } camera.setDisplayOrientation(result); } + + + private void refreshUI() { + resultsTextView.post(new Runnable() { + @Override + public void run() { + String text = ""; + for (int i = 0; i < resultList.size(); i++) { + text += resultList.get(i).getName() + " "; + } + resultsTextView.setText(text); + cameraCoverLinearlayout.setVisibility(View.INVISIBLE); + } + }); + } } diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java index 2ee2ccd..0a07af7 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/modules/MainActivity.java @@ -19,13 +19,12 @@ import android.widget.TextView; import com.ToxicBakery.viewpager.transforms.CubeOutTransformer; import com.akexorcist.roundcornerprogressbar.RoundCornerProgressBar; -import com.bumptech.glide.Glide; import com.cb.ratingbar.CBRatingBar; import com.example.ninefourone.nutritionmaster.NutritionMaster; 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.camera.ClassifierCamera; import com.example.ninefourone.nutritionmaster.modules.addinformation.AddInformationActivity; import com.example.ninefourone.nutritionmaster.modules.addinformation.AddPhysiqueActivity; import com.example.ninefourone.nutritionmaster.modules.information.InformationActivity; @@ -316,14 +315,24 @@ public class MainActivity extends BaseActivity { @Override public void onBoomButtonClick(int index) { Intent cameraIntent = new Intent(MainActivity.this, - FoodMaterialCamera.class); + ClassifierCamera.class); + cameraIntent.putExtra("CODE", ClassifierCamera.MATERAIL_CODE); startActivity(cameraIntent); } }); boomMenuButton.addBuilder(builder); HamButton.Builder builder2 = new HamButton.Builder() .normalImageRes(R.drawable.foods) - .normalTextRes(R.string.food_title); + .normalTextRes(R.string.food_title) + .listener(new OnBMClickListener() { + @Override + public void onBoomButtonClick(int index) { + Intent cameraIntent = new Intent(MainActivity.this, + ClassifierCamera.class); + cameraIntent.putExtra("CODE", ClassifierCamera.DISH_CODE); + startActivity(cameraIntent); + } + }); boomMenuButton.addBuilder(builder2); } diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/ConstantUtils.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/ConstantUtils.java index f07efdc..0ff1c2a 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/ConstantUtils.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/ConstantUtils.java @@ -273,4 +273,6 @@ public class ConstantUtils { public static String BD_SECRET_KEY = "EEXe6pG7QGVdrqDM8eR0S3RY2WPf4Gwn"; public static String BD_ACCESS_TOKEN = ""; + public static String BD_DISH_URL = "https://aip.baidubce.com/rest/2.0/image-classify/v2/dish"; + } diff --git a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/WebUtils.java b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/WebUtils.java index bfce3fe..6a8fb37 100644 --- a/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/WebUtils.java +++ b/app/src/main/java/com/example/ninefourone/nutritionmaster/utils/WebUtils.java @@ -7,8 +7,21 @@ import com.example.ninefourone.nutritionmaster.bean.Occupation; import com.google.gson.Gson; import com.orhanobut.logger.Logger; +import java.io.BufferedReader; +import java.io.DataOutputStream; import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.io.StringWriter; +import java.io.Writer; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Map; import okhttp3.Call; import okhttp3.Callback; @@ -235,6 +248,54 @@ public class WebUtils { } + public static String HttpPost(String requestUrl, String accessToken, String params) throws Exception { + System.out.println(params); + String generalUrl = ""; + generalUrl = requestUrl + "?access_token=" + accessToken; + System.out.println("发送的连接为:" + generalUrl); + URL url = new URL(generalUrl); + // 打开和URL之间的连接 + HttpURLConnection connection = (HttpURLConnection) url.openConnection(); + System.out.println("打开链接,开始发送请求" + new Date().getTime() / 1000); + connection.setRequestMethod("POST"); + // 设置通用的请求属性 + connection.setRequestProperty("Content-Type", "application/json"); + connection.setRequestProperty("Connection", "Keep-Alive"); + connection.setUseCaches(false); + connection.setDoOutput(true); + connection.setDoInput(true); + + // 得到请求的输出流对象 + DataOutputStream out = new DataOutputStream(connection.getOutputStream()); + out.writeBytes(params); + out.flush(); + out.close(); + + // 建立实际的连接 + connection.connect(); + // 获取所有响应头字段 + Map> headers = connection.getHeaderFields(); + // 遍历所有的响应头字段 + for (String key : headers.keySet()) { + System.out.println(key + "--->" + headers.get(key)); + } + // 定义 BufferedReader输入流来读取URL的响应 + BufferedReader in = null; + if (requestUrl.contains("nlp")) + in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "GBK")); + else + in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); + String result = ""; + String getLine; + while ((getLine = in.readLine()) != null) { + result += getLine; + } + in.close(); + System.out.println("请求结束" + new Date().getTime() / 1000); + System.out.println("result:" + result); + return result; + } + public static void main(String[] args) { /*WebUtils.getMenu("雪丽对虾", new Callback() { @Override diff --git a/app/src/main/res/drawable/camera_bg.jpg b/app/src/main/res/drawable/camera_bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d09ed63c125007db1aaf12558c84a4035f7b6ea9 GIT binary patch literal 41199 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̔%r8eFNC&%FIPb%T&q&qGxJ&a$QkKR}>ME>je~I-m>HW_sLm zObof{xFf_~v+$!SZ`^qD=bfFZdNJ;O?wVx_oU}WcGMfdzm~@Z^I1HU2-0-4#j|J=K zaIS0)6khn}HE^)18que&gVB%A9GNA`+Ydb9#;DlEfte!Rn0EI zGS<;}(?cDV-#oBiBACch*mwFHA)rEIKN$`}`naFS%3VAcnIA73KArn&6}w%}&3F;C z=6FE+DuaH^x9+_i-}24z4CSOrXvbL1?^US5@4hFm+rqI1gF)DG8wif8^$qr4k zed1gaH>`{Jn1P)6>@6Rvg#lKnh>CJvOnpBZ?Rn?Qu`NDs<=eMsOXEjZCT?{2S7Bz0 z<9>Yf2LtMWHQWnODG&C&$S%9~HK2+xWOwGh{fWmQA7GHp$X`s@`)^6E%tu>8rak;% zySFA$M|q($qSCqAp*#xD`3X!F651**W2jaVUghlZtxzrUTIe)3Fa!riUx zrTOHe?h!JrZ)a=MUrqYEDq5A^y&j;VfPO5G4r|QGK-pw4LLUyDLbV`VvZdRr1IHV@ z?6l5GcERH+SBYj>-e%E%qQA~6{j81&B&FE`?y)2(7@lC8>YtH`Xojs$iQ&JFp?2?c)0 z2vfaOpLq~vwh2MCh_7cckv4;uPzTL~=B{l;YO2fahx?j#Q4i`S=P7Hy@Xr>p>NWOE zNitZW)A{`6uau9rK)(v*8!ab?RwnjtKt8NH-n`Tmzt5!e_V;It^0{pNkjsTQN^a9f zS`6vI6B!UwK9S9_W67O-oZplBu*}N_f3_#n?lqqfbsWJXXZtVFD}86k#d#TtxpHFmCGTbtit{FTtePkm|Zxc|8hGDV1 zwQVtraA_auyoc2XH=4X(@e z>!_uyIig$Kk?|-bnctPi(Meve)s^Scrz?98j*v<=t40c;hIKPyg(PfivR5{+Q)c#% zPSz&>zP?k?=WTwHTTF6`Ug4b#+?@((MLY<&UM%`29q38YrBl6D1E-KSQr%S&l06quJeEo_IjLT` zB$)`SP$S<*xPVjXe%>DWtO_t&elM)%nO>NYxU#a`Y8TW04AZw8P!%*wx#aTKJfL@l zl7)BC8_!G}Stq|a3J=zL&0YH&gntO+U_CMIRx}-D$+R2ZdykA}y=`RoDkMVvg5BN~ zplc0T-+p@9+jc8mC^5tOzWelz%_hA>81T?JA*ad}M3e-I|l) N$w&Kw;Qrt2{{haPUJ(EQ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/ic_ok.xml b/app/src/main/res/drawable/ic_ok.xml index 400fd38..0d40b66 100644 --- a/app/src/main/res/drawable/ic_ok.xml +++ b/app/src/main/res/drawable/ic_ok.xml @@ -1,4 +1,5 @@ - + + diff --git a/app/src/main/res/drawable/ic_take_photo.xml b/app/src/main/res/drawable/ic_take_photo.xml new file mode 100644 index 0000000..a9904b6 --- /dev/null +++ b/app/src/main/res/drawable/ic_take_photo.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/layout/cameras_layout.xml b/app/src/main/res/layout/cameras_layout.xml index 13a1e8d..03ec529 100644 --- a/app/src/main/res/layout/cameras_layout.xml +++ b/app/src/main/res/layout/cameras_layout.xml @@ -30,6 +30,8 @@ android:layout_width="match_parent" android:layout_height="50dp" android:gravity="center" + android:textColor="#fff" + android:textSize="18sp" tools:text="@string/app_name" /> @@ -39,15 +41,15 @@ android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="2" - android:alpha="0.2" - android:background="#8a515050"> + android:alpha="0.5" + android:background="@drawable/camera_bg"> + android:src="@drawable/ic_take_photo" />