我正在尝试将我的缩略图(userVideoThumbImageView)扩展到屏幕边缘,但似乎没有这样做。我将宽度设置为fill_parent,所以我不确定它为什么不这样做:
http://www.flickr.com/photos/110503723@N07/11207214295
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:orientation="vertical" >
<com.blundell.tut.ui.widget.UrlImageView
android:id="@+id/userVideoThumbImageView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitCenter"
android:contentDescription="YouTube video thumbnail"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/userVideoTitleTextView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@android:color/black"
android:text="Video Title Not Found" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white"
android:orientation="vertical" >
<com.blundell.tut.ui.widget.VideosListView
android:id="@+id/videosListView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<RelativeLayout
android:id="@+id/footer"
android:layout_width="fill_parent"
android:layout_height="70dip"
android:layout_alignParentBottom="true" >
<HorizontalScrollView
android:id="@+id/groupScrollView"
android:layout_width="fill_parent"
android:layout_height="match_parent" >
</HorizontalScrollView>
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:src="@drawable/scroll_lt_arrow" />
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:src="@drawable/scroll_rt_arrow" />
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</RelativeLayout>
</RelativeLayout>
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// If convertView wasn't null it means we have already set it to our list_item_user_video so no need to do it again
if(convertView == null){
// This is the layout we are using for each row in our list
// anything you declare in this layout can then be referenced below
convertView = mInflater.inflate(R.layout.list_item_user_video, parent, false); resolved the issue!
}
// We are using a custom imageview so that we can load images using urls
// For further explanation see: http://blog.blundell-apps.com/imageview-with-loading-spinner/
UrlImageView thumb = (UrlImageView) convertView.findViewById(R.id.userVideoThumbImageView);
TextView title = (TextView) convertView.findViewById(R.id.userVideoTitleTextView);
// Get a single video from our list
final Video video = videos.get(position);
// Set the image for the list item
thumb.setImageDrawable(video.getThumbUrl());
// Set the title for the list item
title.setText(video.getTitle());
return convertView;
}
答案 0 :(得分:1)
在getView
方法中,您需要手动将LayoutParams应用于膨胀的视图,或者使用inflate(myResource, parent, false)
而不是inflate(myResource, null)
来阻止您的xml布局参数被覆盖。在您的情况下,myResource
为R.layout.list_item_user_video
。
然后你可以使用
if (convertView==null)
convertView =
mInflater.inflate(R.layout.list_item_user_video, parent, false);
编辑:
好的,看起来ImageViews无法在XML中自动缩放以适应某个宽度而不会失真:https://stackoverflow.com/a/13925725/506796
因此,您必须在给视图充气后缩放它们。首先,您需要知道图像的宽高比(宽度/高度)。由于您似乎具有恒定的宽高比,因此您可以将其设置为静态最终浮点变量,这将更加容易。
然后您需要知道列表视图的宽度(以像素为单位)。再次,你很幸运,因为你的列表视图填满了屏幕的宽度。 (这更容易,因为测量listview的宽度会很棘手 - 在布局完成第一次传递后你必须这样做。)你可以在适配器构造函数中获得屏幕宽度
screenWidth = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getWidth()
您还可以创建一组布局参数,以应用于所有图像视图。在适配器构造函数中:
LinearLayout.LayoutParams imageParams = new LayoutParams(screenWidth, (int)(screenWidth/aspectRaio));
您可以将这些参数应用于getView
中的图像视图。
答案 1 :(得分:1)
我认为图像现在显示为100%。如果要将其拉伸到最大宽度,请将以下行添加到urlImageView xml:
android:scaleType="fitCenter"
CenterInside执行以下操作:均匀缩放图像(保持图像的纵横比),使图像的尺寸(宽度和高度)等于或小于视图的相应尺寸(减去填充) )。
检查documentation以获取有关缩放的更多信息。