タンクレベルを表示するためにmysqlデータベーステーブルにアクセスしています。画像ビューに値を表示する必要があります。レベルを変更する矩形の高さを変更する必要があります。どのようにそれはアンドロイドで可能です。下のコードコンテナ1とコンテナ2は、レベルデータを格納する変数です。このデータにアクセスし、画像の高さを変更する方法ビュー。Android:受け取ったjsonデータに応じて画像ビューの高さを動的に変更
package com.example.tg.mysmartcontainer;
import android.os.AsyncTask; import android.os.Bundle; import android.support.v7.app.ActionBarActivity;インポート android.widget.ListAdapter; import android.widget.ListView;インポート android.widget.SimpleAdapter; import android.os.Handler;インポート org.apache.http.HttpEntity;インポートorg.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost;インポート org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.params.BasicHttpParams; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject;
import java.io.BufferedReader; import java.io.InputStream;インポート java.io.InputStreamReader; import java.util.ArrayList;インポート java.util.HashMap;
パブリッククラスMainActivityがActionBarActivity {
String myJSON; Handler mHandler; private static final String TAG_RESULTS = "result"; private static final String TAG_timeStamp = "timeStamp"; private static final String TAG_container1 = "container1"; private static final String TAG_container2 = "container2"; JSONArray container = null; ArrayList<HashMap<String, String>> ContainerList; ListView list; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); list = (ListView) findViewById(R.id.listView); ContainerList = new ArrayList<HashMap<String, String>>(); final Handler handler = new Handler(); Runnable refresh = new Runnable() { @Override public void run() { getData(); handler.postDelayed(this, 0); } }; handler.postDelayed(refresh, 0); //getData(); } public void getData() { class GetDataJSON extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { DefaultHttpClient httpclient = new DefaultHttpClient(new BasicHttpParams()); HttpPost httppost = new HttpPost("http://smartgrocer.000webhostapp.com/get_data.php"); // Depends on your web service httppost.setHeader("Content-type", "application/json"); InputStream inputStream = null; String result = null; try { HttpResponse response = httpclient.execute(httppost); HttpEntity entity = response.getEntity(); inputStream = entity.getContent(); // json is UTF-8 by default BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"), 8); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) { sb.append(line + "\n"); } result = sb.toString(); } catch (Exception e) { // Oops } finally { try { if (inputStream != null) inputStream.close(); } catch (Exception squish) { } } return result; } @Override protected void onPostExecute(String result) { myJSON = result; showList(); } } GetDataJSON g = new GetDataJSON(); g.execute(); } protected void showList() { try { JSONObject jsonObj = new JSONObject(myJSON); container = jsonObj.getJSONArray(TAG_RESULTS); if(ContainerList!=null&&ContainerList.size()>0) ContainerList.clear(); for (int i = 0; i < container.length(); i++) { JSONObject c = container.getJSONObject(i); String timeStamp = c.getString(TAG_timeStamp); String container1 = c.getString(TAG_container1); String container2 = c.getString(TAG_container2); HashMap<String, String> container = new HashMap<String, String>(); container.put(TAG_timeStamp, timeStamp); container.put(TAG_container1, container1); container.put(TAG_container2, container2); ContainerList.add(container); } ListAdapter adapter = new SimpleAdapter( MainActivity.this, ContainerList, R.layout.list_item, new String[]{TAG_timeStamp, TAG_container1, TAG_container2}, new int[]{R.id.timeStamp, R.id.container1, R.id.container2} ); list.setAdapter(adapter); } catch (JSONException e) { e.printStackTrace(); } }
}
はい、それは可能ですが、我々は –
が –