0

高さ200ピクセルと400ピクセルの画像があります。これらすべての画像を表示する方法は、高さ 200 ピクセルです。画像のサイズが何であれ、その画像を表示しながら、高さ200ピクセルまでの画像を表示したいということです。画像の残りの部分は非表示になります。では、どのようにそれを行うことができますか?デコードに 1 つのコードを使用しましたが、ここではより大きなサイズの画像を引き伸ばしてから表示します。私の場合、画像を引き伸ばしたくはありませんが、高さ 200 ピクセルまでの画像のみを表示します。

私が使用したコード:

private Bitmap decodeFile(File f)
{
    try 
    {
        // decode image size
        BitmapFactory.Options o = new BitmapFactory.Options();
        
        // Find the correct scale value.
        final int REQUIRED_SIZE = 200;
        int height_tmp = o.outHeight;
        while(true)
        {
            if(height_tmp/2 < REQUIRED_SIZE)
                break;          
            height_tmp/=2;
        }

        o.inSampleSize = height_tmp;
        return BitmapFactory.decodeStream(new FileInputStream(f), null, o);
    } 
    catch (FileNotFoundException e) 
    {}
    return null;
}
4

2 に答える 2

1

わかりましたので、プログラムで同じタスクを実行するには、layoutParams を試してください。

  public void taskCompleted ()
{

    ImageView iv = new ImageView(this);


    Bitmap completionBitmap = null;
    completionBitmap = BitmapFactory.decodeFile(CommonMessageConstants.BASE_IMAGE_FOLDER_ON_DEVICE +"completionimage.png");


    iv.setImageBitmap(completionBitmap);
    RelativeLayout rl = (RelativeLayout) findViewById(R.id.randomImageView);
    RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    //lp.setMargins(200, 200, 0, 0);

    lp.addRule(RelativeLayout.CENTER_IN_PARENT);


    rl.addView(iv, lp);

    Toast.makeText (getApplicationContext(), msg, Toast.LENGTH_SHORT).show ();

} 
于 2012-06-20T06:24:20.753 に答える
1

main.xml を編集するだけです

    android:layout_width="200dp"
    android:layout_height="200dp"
于 2012-06-20T05:55:04.527 に答える