Ich versuche, Bilder von einem URL
mit Universal Image Loader
und zoom
mit TouchImageView Mike Ortiz
zu implementieren. Wenn Sie jedoch versuchen, das Bild anzuzeigen, wird schwarzer Bildschirm angezeigt. Ich habe überprüft, dass die URLs korrekt sind. Wenn ich dort einen TextView sehe ...Android: nicht angezeigt ImageView mit UIL und TouchImageView
Was mache ich falsch?
ImagePagerActivity.java
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_fullscreen_view);
Bundle bundle = getIntent().getExtras();
assert bundle != null;
String[] imageUrls = bundle.getStringArray("urls");
int pagerPosition = bundle.getInt("pos", 0);
tipo = bundle.getString("tipo");
monumento = bundle.getString("monumento");
num = bundle.getInt("num");
for(int i = 0; i < imageUrls.length; i++) {
// URLS with data
Toast.makeText(this, "URL = " + imageUrls[i], 0).show();
}
if (savedInstanceState != null) {
pagerPosition = savedInstanceState.getInt(STATE_POSITION);
}
options = new DisplayImageOptions.Builder()
.showImageForEmptyUri(R.drawable.imagen)
.showImageOnFail(R.drawable.imagen)
.resetViewBeforeLoading(true)
.cacheOnDisc(true)
.imageScaleType(ImageScaleType.EXACTLY)
.bitmapConfig(Bitmap.Config.RGB_565)
.considerExifParams(true)
.displayer(new FadeInBitmapDisplayer(300))
.build();
pager = (ExtendedViewPager) findViewById(R.id.pager);
pager.setAdapter(new ImagePagerAdapter(imageUrls));
pager.setCurrentItem(pagerPosition);
}
@Override
public void onSaveInstanceState(Bundle outState) {
outState.putInt(STATE_POSITION, pager.getCurrentItem());
}
private class ImagePagerAdapter extends PagerAdapter {
private String[] images;
private LayoutInflater inflater;
ImagePagerAdapter(String[] images) {
this.images = images;
inflater = getLayoutInflater();
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public int getCount() {
return images.length;
}
@Override
public Object instantiateItem(ViewGroup view, int position) {
final View imageLayout = inflater.inflate(R.layout.ampliar_imagen, view, false);
assert imageLayout != null;
imageView = (TouchImageView) imageLayout.findViewById(R.id.imagenFullScreen);
infoImagen = (LinearLayout)imageLayout.findViewById(R.id.textoInfoImagen);
info = (TextView) imageLayout.findViewById(R.id.textoInfoImagenDesc);
cargarInfo(position, images);
android.graphics.PorterDuff.Mode.MULTIPLY);
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LinearLayout infoImagen = (LinearLayout)imageLayout.findViewById(R.id.textoInfoImagen);
if(infoImagen.getVisibility() == View.GONE) {
infoImagen.setVisibility(View.VISIBLE);
} else {
infoImagen.setVisibility(View.GONE);
}
}
});
imageLoader.displayImage(images[position], imageView, options, new SimpleImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
spinner.setVisibility(View.VISIBLE);
}
@Override
public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
spinner.setVisibility(View.GONE);
}
@Override
public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
spinner.setVisibility(View.GONE);
}
});
view.addView(imageLayout, 0);
return imageLayout;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}
@Override
public void restoreState(Parcelable state, ClassLoader loader) {
}
@Override
public Parcelable saveState() {
return null;
}
}
private void cargarInfo(int position, String[] images) {
if(tipo.equals("fotos")) {
info.setText((position + 1) + " de " + images.length +
"\n" + InfoImagenes.devolverInfoFotos(monumento, position, num, ImagePagerActivity.this));
}
else if(tipo.equals("planos")) {
info.setText((position + 1) + " de " + images.length +
"\n" + InfoImagenes.devolverInfoPlanos(position, num, ImagePagerActivity.this));
}
}
activity_full_screen.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<imagenes.ExtendedViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
ampliar_imagen.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/negro" >
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<imagenes.TouchImageView
android:id="@+id/imagenFullScreen"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:adjustViewBounds="true" />
<ProgressBar
android:id="@+id/cargandoFoto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="gone" />
</FrameLayout>
<LinearLayout
android:id="@+id/textoInfoImagen"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="@color/grisTransparente"
android:orientation="horizontal"
android:visibility="visible" >
<TextView
android:id="@+id/textoInfoImagenDesc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_horizontal"
android:paddingBottom="3dp"
android:paddingTop="3dp"
android:textColor="@color/blanco"
android:textSize="13sp" />
</LinearLayout>
</RelativeLayout>
EDIT
Wenn ich TouchImageView ändern, indem Image es um das Bild anzuzeigen
Hattest du gerade eine Lösung? Bitte teilen Sie es, ich bin auch treffen oben Problem – BaDo