1

このような自分のデータベースに画像があります

画像データベース

そして、この PHP コードを使用してその画像をブラウザに表示すると、うまく機能します。

<?php
    require_once __DIR__ . '/db_config1.php';
    $con = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD);
    if(mysqli_connect_errno()){
        echo "connect failed: %s\n", mysqli_connect_error;
    }
    $db = mysqli_select_db($con, DB_DATABASE) or die(mysqli_error($con));
    if (isset($_GET['pid'])) {
        $pid = $_GET['pid'];

        $result = mysqli_query($con, "SELECT * FROM products WHERE pid = $pid");
        if (!empty($result)) {
            $result = mysqli_fetch_array($result);
        }
        header('content-type: image/png');
        echo $result['image'];
        mysqli_close($con);
    }else{
        echo "Error";
    }   
?>

画像の URL は次のとおりです: http://kenkma.freevnn.com/android_connect/getImage1.php?pid=118

私のマニフェストにもこれがあります

<uses-permission android:name="android.permission.INTERNET" />

Androidスタジオでは、このコードを使用してその画像のURLを画像ビューに表示しようとしています

//Using in AsynTask
class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
    private Bitmap image;
    private CircleImageView civ;

    public DownloadImageTask(CircleImageView civ) {
        this.civ = civ;
    }

    protected Bitmap doInBackground(String... urls) {
        String urldisplay = urls[0];
        try {
            InputStream in = new URL(urldisplay).openStream();
            image = BitmapFactory.decodeStream(in);
        } catch (Exception e) {
            image = null;
        }
        return image;
    }
    protected void onPostExecute(Bitmap result) {
        if (result != null) {
            civ.setImageBitmap(result);
        }
    }
}

//or try use this
public Bitmap getBitmapFromURL(String src) {
    try {
        URL url = new URL(src);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = new BufferedInputStream(connection.getInputStream());
        Bitmap myBitmap = BitmapFactory.decodeStream(input);
        return myBitmap;

    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
        return null;
    }
}

そして、universal-image-loader と Picasso ライブラリをこのように使用してみます。

String url = "http://kenkma.freevnn.com/android_connect/getImage1.php?pid=118"
civ = (CircleImageView) findViewById(R.id.profile_image);

//With Image Loader lib
ImageLoader imageLoader = ImageLoader.getInstance();  
imageLoader.init(ImageLoaderConfiguration.createDefault(MainActivity.this));
imageLoader.displayImage(url, civ);

//Or with Picasso lib
Picasso.with(MainActivity.this)
            .load(url) 
            .placeholder(R.drawable.logo)
            .error(R.mipmap.ic_launcher)
            .into(civ);

すべてのテーマは、インターネットで取得したすべての画像の URL (Google 画像または一部の Web サイトのアップロード画像の画像) でうまく機能しますが、画像の URL では機能しません (画像は常に Null を返し、画像ビューには何も表示されません)。

4

0 に答える 0