Я использую Universal ImageLoader для загрузки больших изображений с сервера и отображения их в режиме обложки. Проблема, с которой я столкнулся, заключается в том, что я не могу установить нестандартный размер для своего изображения. Просто занимает весь экран. Например, я загружаю изображение размером 500 x 1200 и хочу отобразить его размером 300 x 300. Но оно занимает весь экран. Пожалуйста, помогите мне с этой проблемой, так как я застрял в течение более 3 дней. Спасибо.
Код
public class HomeCoverFlow {
Context mContext;
public CoverFlow coverFlow;
ImageAdapter coverImageAdapter;
ImageLoader imageLoader = ImageLoader.getInstance();
DisplayImageOptions options;
/** Called when the activity is first created. */
public HomeCoverFlow(Context context)
{
mContext = context;
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.flyer_placeholder)
.showImageForEmptyUri(R.drawable.flyer_placeholder)
.imageScaleType(ImageScaleType.EXACTLY)
.cacheInMemory(true)
.build();
coverFlow = new CoverFlow(context);
coverImageAdapter = new ImageAdapter(mContext);
coverFlow.setAdapter(coverImageAdapter);
coverFlow.setSpacing(-25);
coverFlow.setSelection(2, true);
coverFlow.setAnimationDuration(1000);
coverFlow.setGravity(Gravity.CENTER_VERTICAL);
// HEIGHT
coverImageAdapter.coverflowHeight = 100; //display.getHeight() / 3;
//WIDTH
coverImageAdapter.coverflowWidth = 100;// display.getWidth() / 2;
}
Метод в адаптере для создания представлений элементов. Здесь я использую загрузчик изображений для загрузки изображения и отображения
public View getView(int position, View convertView, ViewGroup parent) {
FeaturedFlyerData data = (FeaturedFlyerData) getItem(position);
if(data.flyerImage == null)
{
setNewImage(position);
}
//see text or image
if(data.displayImage)
{
data.flyerImage.setBackgroundColor(Color.BLACK);
imageLoader.displayImage(data.url, data.flyerImage, options, null);
}
return data.flyerImage;
}
void setNewImage(int position)
{
FeaturedFlyerData data = (FeaturedFlyerData) getItem(position);
data.flyerImage = new ImageView(mContext);
data.flyerImage.layout(0, 10, 200,350);
data.flyerImage.setScaleType(ScaleType.CENTER_INSIDE);
data.flyerImage.setTag(Integer.toString(position));
data.flyerImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
imageClicked(Integer.parseInt(v.getTag().toString()));
}
});
}
}
Я не знаю, какой еще фрагмент кода предоставить здесь. Пожалуйста, прокомментируйте, если вам нужны дополнительные разъяснения. Спасибо.
nullpointerexception
за это. Может быть, это недействительно для изображений. - person NightFury   schedule 25.02.2014java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.Gallery$LayoutParams
- person NightFury   schedule 25.02.2014LinearLayoutParams
- person kabuto178   schedule 25.02.2014