Android ImageButton不是';获得';位图

Android ImageButton不是';获得';位图,android,Android,我有以下功能下载图像: private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> { private ImageButton bmImage; public DownloadImageTask(ImageButton bmImage) { this.bmImage = bmImage; } protected void onPreExecute(

我有以下功能下载图像:

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {

    private ImageButton bmImage;

    public DownloadImageTask(ImageButton bmImage) {
        this.bmImage = bmImage;
    }

    protected void onPreExecute() {

        Log.wtf("IMAGETASK","onPREexecute");
        //mDialog = ProgressDialog.show(ChartActivity.this,"Please wait...", "Retrieving data ...", true);
    }

    protected Bitmap  doInBackground(String... urls) {

        Bitmap bitmap = null;
        String error_message = null;

        for(String url:urls){
            HttpUriRequest request = new HttpGet(url.toString());
            HttpClient httpClient = new DefaultHttpClient();
            try {
                HttpResponse response = httpClient.execute(request);
                StatusLine statusLine = response.getStatusLine();
                int statusCode = statusLine.getStatusCode();
                if (statusCode == 200) {
                    HttpEntity entity = response.getEntity();
                    byte[] bytes = EntityUtils.toByteArray(entity);
                    Log.e("here",""+bytes.length);
                    bitmap = BitmapFactory.decodeByteArray(bytes, 0,bytes.length);
                    Thread.sleep(1000);
                }
                else
                {
                    error_message="Download failed, HTTP response code "+ statusCode + " - " + statusLine.getReasonPhrase();
                }
            } catch (Exception er) {
                Log.e("Error",""+er);
            }}
        //image.setImageBitmap(bitmap);
        return bitmap ;
    }

    /*  OLD ONE (DOESN'T ALSO WORK)
    protected Bitmap doInBackground(String... urls) {
        String urldisplay = urls[0];
        Bitmap mIcon11 = null;
        try {
            InputStream in = new java.net.URL(urldisplay).openStream();
            mIcon11 = BitmapFactory.decodeStream(in);
        } catch (Exception e) {
            Log.wtf("Error", "image download error");
            Log.wtf("Error", e.getMessage());
            e.printStackTrace();
        }
        return mIcon11;
    }*/

    protected void onPostExecute(Bitmap result) {
        Log.wtf("IMAGETASK","onPOSTexecute");
        Log.wtf("IMAGETASK, POST EXECUTE",result.toString());
        //set image of your imageview
        bmImage.setImageBitmap(result);

        android.view.ViewGroup.LayoutParams params = bmImage.getLayoutParams();
        params.height = 50;
        params.width = 50;
        bmImage.setLayoutParams(params);

        int width = bmImage.getWidth();
        int height = bmImage.getHeight();

        Log.wtf("width",String.valueOf(width));
        Log.wtf("height",String.valueOf(height));
        layout.addView(bmImage); //APPENDING ELEMENT (WITH IMAGE)

    }
}
private void buildElement(final String friend_id, final String user_id, String name){

    ImageButton element = (ImageButton) getLayoutInflater().inflate(R.layout.ELEMENT_LAYOUT, something, false);

    String img_value = "VALID IMAGE LINK"

        element.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                focus();

            }
        });

        new DownloadImageTask(element).execute(img_value);

}
<ImageButton
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    style="?android:attr/buttonStyleSmall"
    android:text="New Button"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:scaleType="fitXY"
    android:layout_alignParentTop="true"/>
下面是元素布局.xml

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {

    private ImageButton bmImage;

    public DownloadImageTask(ImageButton bmImage) {
        this.bmImage = bmImage;
    }

    protected void onPreExecute() {

        Log.wtf("IMAGETASK","onPREexecute");
        //mDialog = ProgressDialog.show(ChartActivity.this,"Please wait...", "Retrieving data ...", true);
    }

    protected Bitmap  doInBackground(String... urls) {

        Bitmap bitmap = null;
        String error_message = null;

        for(String url:urls){
            HttpUriRequest request = new HttpGet(url.toString());
            HttpClient httpClient = new DefaultHttpClient();
            try {
                HttpResponse response = httpClient.execute(request);
                StatusLine statusLine = response.getStatusLine();
                int statusCode = statusLine.getStatusCode();
                if (statusCode == 200) {
                    HttpEntity entity = response.getEntity();
                    byte[] bytes = EntityUtils.toByteArray(entity);
                    Log.e("here",""+bytes.length);
                    bitmap = BitmapFactory.decodeByteArray(bytes, 0,bytes.length);
                    Thread.sleep(1000);
                }
                else
                {
                    error_message="Download failed, HTTP response code "+ statusCode + " - " + statusLine.getReasonPhrase();
                }
            } catch (Exception er) {
                Log.e("Error",""+er);
            }}
        //image.setImageBitmap(bitmap);
        return bitmap ;
    }

    /*  OLD ONE (DOESN'T ALSO WORK)
    protected Bitmap doInBackground(String... urls) {
        String urldisplay = urls[0];
        Bitmap mIcon11 = null;
        try {
            InputStream in = new java.net.URL(urldisplay).openStream();
            mIcon11 = BitmapFactory.decodeStream(in);
        } catch (Exception e) {
            Log.wtf("Error", "image download error");
            Log.wtf("Error", e.getMessage());
            e.printStackTrace();
        }
        return mIcon11;
    }*/

    protected void onPostExecute(Bitmap result) {
        Log.wtf("IMAGETASK","onPOSTexecute");
        Log.wtf("IMAGETASK, POST EXECUTE",result.toString());
        //set image of your imageview
        bmImage.setImageBitmap(result);

        android.view.ViewGroup.LayoutParams params = bmImage.getLayoutParams();
        params.height = 50;
        params.width = 50;
        bmImage.setLayoutParams(params);

        int width = bmImage.getWidth();
        int height = bmImage.getHeight();

        Log.wtf("width",String.valueOf(width));
        Log.wtf("height",String.valueOf(height));
        layout.addView(bmImage); //APPENDING ELEMENT (WITH IMAGE)

    }
}
private void buildElement(final String friend_id, final String user_id, String name){

    ImageButton element = (ImageButton) getLayoutInflater().inflate(R.layout.ELEMENT_LAYOUT, something, false);

    String img_value = "VALID IMAGE LINK"

        element.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                focus();

            }
        });

        new DownloadImageTask(element).execute(img_value);

}
<ImageButton
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    style="?android:attr/buttonStyleSmall"
    android:text="New Button"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:scaleType="fitXY"
    android:layout_alignParentTop="true"/>

ImageButton确实创建了,但它只是一个小小的灰色正方形。你知道为什么吗?另外,
Log.wtf(“宽度”,String.valueOf(宽度));Log.wtf(“高度”,String.valueOf(高度))日志“0”、“0”。非常感谢你