当前位置:  开发笔记 > Android > 正文

Android:调整图像宽度和高度

如何解决《Android:调整图像宽度和高度》经验,为你挑选了1个好方法。

我正在创建一个从网址下载图像的应用程序,将它们保存在设备上,之后必须将它们加载到具有固定大小的ImageView中.对于下载和保存文件我没有问题但是当我尝试在ImageView中设置图像时我有一个致命的错误,因为我的ImageView图像很大(我认为......).

这是xml文件:






    

    

    



是一个带有ImageView的简单布局,一个位于ImageView右侧的TextView和一个TextView

重要的是ImageView with和height.设置为100dip(如果我计算2dip为保证金).

这个类的代码,图像保存在Bitmap中.

public class Notizia {
    String url;
    String titolo;
    String sottoTitolo;
    String nomeImmaginSalvata;
    Bitmap immagine;

public Notizia(String tit, String sottoTit, Bitmap imm, String lk){
    titolo = tit;
    sottoTitolo = sottoTit;
    immagine = imm;
    url = lk;
    nomeImmaginSalvata = nomeImmSalvata;
}
}

在这种情况下,我将在下载后立即使用该图像而不将其保存到磁盘,因为它不是必需的保存.

这是使用xml布局创建动态布局的代码

LayoutInflater layoutInflator = (LayoutInflater) getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        LinearLayout insertPoint = (LinearLayout) findViewById(R.id.ll_content);
        List views = new ArrayList();

        Iterator it = (Dati.listaNotizie).iterator();
        while (it.hasNext()){
            Notizia not = it.next();
            View view = layoutInflator.inflate(R.layout.layout_notizie, null);
            TextView textView = (TextView) view.findViewById(R.id.notizieTitolo);
            Bitmap yourBitmap = not.getImmagine();
            Bitmap resized = Bitmap.createScaledBitmap(yourBitmap, 10, 10, true);
            TextView textView1 = (TextView) view.findViewById(R.id.notizieSottoTitolo);
            ImageView img = (ImageView) findViewById(R.id.immagineNotizie);
            img.setImageBitmap(resized);
            textView.setText(not.getTitolo());
            textView1.setText(not.getSottoTitolo());
            view.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
            views.add(view);
        }

        for(int i = 0; i

我的问题是:如何在100dip(或98)中调整图像宽度和高度?

我试过了

Bitmap resized = Bitmap.createScaledBitmap(yourBitmap, width, heigh, true);

但没什么.



1> Pedro Olivei..:

你需要从dp转换为px,因为createScaledBitmap使用px.使用这个功能:

private float pxFromDp(float dp)
{
    return dp * getResources().getDisplayMetrics().density;
}

private float dpFromPx(float px)
{
    return px / getResources().getDisplayMetrics().density;
}

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有