Myślę, że jest problem z moim ImageView. stworzyłem galerię sztuki, gdzie można dotknąć obrazu i umieścić go w moim ImageView poniżej:Umieszczanie dużego obrazu w ImageView nie działa
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/fonddegrade">
<Gallery android:layout_height="wrap_content"
android:id="@+id/gallery"
android:layout_width="fill_parent" />
<ImageView android:layout_below="@+id/gallery"
android:layout_height="wrap_content"
android:id="@+id/laphoto"
android:layout_width="wrap_content"
android:layout_centerHorizontal="true"/>
ta jest doskonale pracy z małym obrazem, ale nie z dużego obrazu (3264 * 1952). Kiedy go dotknę (tak, próbując umieścić go w ImageView), mam błąd i awarię mojej aplikacji. Oto mój kod Java do wyświetlania obrazu:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.photo);
File images; // Trouver le bon endroit de stockage
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
images = new File("/sdcard/MyPerformance/Photo");
else
images = this.getFilesDir();
images.mkdirs();
File[] imagelist = images.listFiles(new FilenameFilter(){
@Override
public boolean accept(File dir, String name)
{
return ((name.endsWith(".jpg"))||(name.endsWith(".png")));
}
});
mFiles = new String[imagelist.length];
for(int i = 0 ; i< imagelist.length; i++)
{
mFiles[i] = imagelist[i].getAbsolutePath();
}
mUrls = new Uri[mFiles.length];
for(int i = 0; i < mFiles.length; i++)
{
mUrls[i] = Uri.parse(mFiles[i]);
}
imgView = (ImageView)findViewById(R.id.laphoto);
if(mFiles.length != 0)
imgView.setImageURI(mUrls[0]);
gallery = (Gallery) findViewById(R.id.gallery);
gallery.setAdapter(new ImageAdapter(this));
gallery.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
imgView.setImageURI(mUrls[position]);
}
});
}
czy problem wynika z setImageURI (ale nie sądzę, że to jest przyczyną, ponieważ jest to praca z małym obrazku) lub ze względu na wielkość zdjęcie.
Jakie rozwiązanie możesz rozwiązać, aby rozwiązać ten problem? Masz moje dzięki.
PS: Dlaczego moje "Hello" są zawsze usunięte?
Więc jaki jest problem? Czy to się psuje? Przy okazji Twój obraz wygląda naprawdę bardzo, Android może stracić pamięć podczas ładowania. –
Wstępnie zmień rozmiar obrazu - ten jest dość świni. Produktem komercyjnym jest http://www.avs4you.com/AVS-Image-Converter.aspx – mozillanerd
Ponadto, jeśli po prostu sprawdzisz błąd awarii w kodzie logcat, da ci to wskazówkę ?? Zrób to i opublikuj błąd, jeśli nadal masz wątpliwości. – Peterdk