0

私は何日もこの解決策を得ようとしていますが、まだ運がありません. 親切に助けてください。URL をパラメーターとして受け取り、ImageView に返す関数を作成する必要があります。このコードを変更してそれを行う方法を誰かが親切に教えてくれますか? 下に赤い線が表示されますimgURL.setImageBitmap(directory.getString(TAG_IMAGE));

public class ViewProfileActivity extends Activity {

    ImageView imgURL;
    TextView txtName;

    String eid; 

    private ProgressDialog pDialog;

    JSONParser jsonParser = new JSONParser();

    private static final String url_veiw_directory = "http://website.com/app/include/view_directory.php";

    private static final String TAG_SUCCESS = "success";
    private static final String TAG_DIRECTORY = "directory";
    private static final String TAG_ID = "eid";
    private static final String TAG_IMAGE = "image";
    private static final String TAG_NAME = "name";  

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.view_directory);

        Intent i = getIntent();

        eid = i.getStringExtra(TAG_ID);     


        new GetDirectoryDetails().execute();

    }   

    class GetDirectoryDetails extends AsyncTask<String, String, String> {

        protected String doInBackground(String... params) {

            runOnUiThread(new Runnable() {
                public void run() {

                    int success;
                    try {

                        List<NameValuePair> params = new ArrayList<NameValuePair>();
                        params.add(new BasicNameValuePair("id", eid));

                        JSONObject json = jsonParser.makeHttpRequest(url_veiw_directory, "GET", params);

                        Log.d("Single Directory Details", json.toString());

                        success = json.getInt(TAG_SUCCESS);
                        if (success == 1) {                     

                            JSONArray directoryObj = json.getJSONArray(TAG_DIRECTORY);  
                            JSONObject directory = directoryObj.getJSONObject(0);

                            imgURL = (ImageView) findViewById(R.id.image);
                            txtName = (TextView) findViewById(R.id.name);                       


                            imgURL.setImageBitmap(directory.getString(TAG_IMAGE));
                            txtName.setText(directory.getString(TAG_NAME));                         


                        }else{

                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            });

            return null;
        }

        protected void onPostExecute(String file_url) {
            pDialog.dismiss();
        }

    }
}
4

2 に答える 2

3

http://developer.android.com/reference/android/widget/ImageView.html#setImageBitmap%28android.graphics.Bitmap%29

setImageBitmap()パラメータとして文字列を受け入れる ImageView にはメソッドはありません。Bitmap を指定する必要があります。

代わりに、次のようにBitmapFactoryを使用してビットマップを作成できます。

setImageBitmap(BitmapFactory.decodeFile(directory.getString(TAG_IMAGE)));

編集: 申し訳ありませんが、デコードしたい URL であることを忘れていました。これについては、@MarchingHome の回答を参照してください。

于 2012-10-16T20:29:28.673 に答える
2

私は問題を見ていると思います。引数としてオブジェクトImageView.setImageBitmapが必要です。BitmapAStringしません。をオブジェクトJSONObjectとしてロードしてみてください。Bitmap

これがあなたが探している答えかもしれません: Loading a Bitmap from URL

于 2012-10-16T20:35:59.607 に答える