为手机和平板电脑使用不同尺寸的图像

时间:2015-06-17 12:43:08

标签: android

我想为平板电脑使用更大尺寸的图像,并减小手机的尺寸 我正在为ImageButton中的所有图像执行此操作 我尝试将不同大小的图像,如hdpi,ldpi,mdpi等放在drawable中的不同文件夹中,但这也无效。

我已经读过应该使用不同的布局,但是在较新的API级别中,它现在已被弃用。

有没有简单的方法可以做到这一点?

3 个答案:

答案 0 :(得分:0)

根据您的手机/平板电脑像素密度,Android系统会自动为您的手机/平板电脑选择适合的图像。但是,您仍然可以明确地让Android选择不同大小的图像。像这样......

//适用于手机 绘制,LDPI 绘制,MDPI 抽拉-HDPI

//适用于7英寸平板电脑 提拉 - 大MDPI drawable-large-hdpi(适用于Nexus 7)

//适用于10英寸平板电脑 抽拉-XLARGE-MDPI

RES /抽拉-XLARGE-MDPI /

答案 1 :(得分:0)

Android会选择它需要哪一个。所以你只需要在好文件夹上放置尺寸合适的图像。
您可以查看文档here,也可以查看this帖子。

答案 2 :(得分:0)

这是我在网上找到的减少图像大小的代码之一。试试这个。

    import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.widget.ImageView;

public class AndroidLoadImageViewActivity extends Activity {

 String imagefile ="/sdcard/IMG_9331.JPG";

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ImageView image = (ImageView)findViewById(R.id.image);
        //Bitmap bm = BitmapFactory.decodeFile(imagefile);
        Bitmap bm = ShrinkBitmap(imagefile, 300, 300);
        image.setImageBitmap(bm);
    }

 Bitmap ShrinkBitmap(String file, int width, int height){

     BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options();
        bmpFactoryOptions.inJustDecodeBounds = true;
        Bitmap bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions);

        int heightRatio = (int)Math.ceil(bmpFactoryOptions.outHeight/(float)height);
        int widthRatio = (int)Math.ceil(bmpFactoryOptions.outWidth/(float)width);

        if (heightRatio > 1 || widthRatio > 1)
        {
         if (heightRatio > widthRatio)
         {
          bmpFactoryOptions.inSampleSize = heightRatio;
         } else {
          bmpFactoryOptions.inSampleSize = widthRatio; 
         }
        }

        bmpFactoryOptions.inJustDecodeBounds = false;
        bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions);
     return bitmap;
    }
}
相关问题