2012-06-19 1 views
0

Я новичок в разработке Androidандроид CoverFlow высота

я м в настоящее время тестирует андроида CoverFlow здесь: http://code.google.com/p/android-coverflow/

Я succeffully реализовал его в моем проекте, но я не могу найти способ, чтобы дать виджет на Требуемая ширина и высота

мой макет:

<view 
    xmlns:coverflow="http://schemas.android.com/apk/res/com.accessdev.myapp" 
    android:id="@+id/coverflow" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_marginTop="5dip" 
    class="pl.polidea.coverflow.CoverFlow" 
    coverflow:imageHeight="150dip" 
    coverflow:imageWidth="100dip" > 
</view> 

изменения Coverflow: ImageHeight и CoverFlow: ImageWidth только утвердительный ects размер изображений, но виджет не заполняет макет высотой (это похоже на 10% экрана, и мне еще не удалось его изменить)

+0

Эй Если у вас есть решение, пожалуйста, поделитесь, как я не могу сделать то же самое. –

ответ

1

как вы можете видеть в классе Coverflow в наборе методовAdapter, ширина адаптера и height установлены на imageWidth/imageHeight, поэтому измените значение двух переменных в методе parseAttributes.

EDIT: Я думаю, вы можете изменить AbstractCoverflowAdapter, чтобы надуть xml, который содержит ImageView с шириной/высотой, заданной для fill_parent. Это должно работать: D

Для XML:

<?xml version="1.0" encoding="utf-8"?> 
<ImageView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/image" 
    android:layout_width="200dip" 
    android:layout_height="400dip" 
    android:src="@drawable/ic_launcher" /> 

В GetView адаптера():

 LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     row = inflater.inflate(R.layout.your_layout, parent, false); 
     ImageView image = (ImageView) row.findViewById(R.id.image); 
     image.setImageBitmap(your_bitmap); 
+0

Если я так жестко код в методе parseAttributes: imageWidth = 480; imageHeight = 320; Я получаю ту же проблему –

+0

Если вы посмотрите в AbstractCoverFlowAdapter, вы можете увидеть в getView это: imageView.setLayoutParams (new CoverFlow.LayoutParams ((int) width, (int) height)); - это означает, что изображения в coverflow получат размеры, указанные в parseAttributtes(). Мне кажется, что покрытие будет принимать только размеры, указанные там, если нет способа изменить код/​​макет, чтобы быть другим способом ... –