如何在所有屏幕上正确调整imageview的大小?

问题描述:

我正在制作迷你书签应用程序。这个想法是用存储在浏览器书签数据库中的网站的图标填充相对布局。我从数据库中提取blob图像,并使用Drawable.createFromStream方法将它们转换为drawable。我怎样才能正确地确定这些图像的大小,因为目前它们很小?我的另一个问题是相对布局。我怎样才能正确使用图标填充水平区域,所以当它到达屏幕的末尾时,他们会换行?如何在所有屏幕上正确调整imageview的大小?

这里是我的代码:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    ScrollView scrollView = new ScrollView(this); 
    RelativeLayout relativeLayout = new RelativeLayout(this); 
    ImageView bookmark; 

    scrollView.addView(relativeLayout); 

    this.startManagingCursor(cursor); 
    Uri Bookmarks = Browser.BOOKMARKS_URI; 

    cursor = managedQuery(
      Bookmarks, projection, selection, null, Browser.BookmarkColumns.VISITS + " DESC"); 

    if (cursor.moveToFirst()) { 
     int idCounter = 1; 
     ByteArrayInputStream blobImage; 

     do{ 
      bookmark = new ImageView(this); 
      bookmark.setId(idCounter++); 

      blobImage = new ByteArrayInputStream(
        cursor.getBlob(cursor.getColumnIndex(BookmarkColumns.FAVICON))); 

      bookmark.setImageDrawable(
        Drawable.createFromStream(blobImage, "" + bookmark.getId())); 

      RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

      if(idCounter > 1) { 
       params.addRule(RelativeLayout.BELOW, bookmark.getId() - 1); 
      } 

      relativeLayout.addView(bookmark, params); 
     } while (cursor.moveToNext()); 
    } 

    this.setContentView(scrollView); 
} 

}

有很多,你可以接近你想要做什么样的方式。

但是ImageViews产生水垢类型,因此图像可以被强制扩展,但保持比或扩大,从而整个视图中填充

http://developer.android.com/reference/android/widget/ImageView.ScaleType.html

在填充屏幕方面,你”您需要确定每行图标的数量或者动态确定它们的数量并调整它们的大小。