Android ile verilen bir Image URLsini Gallerye eklemeye çalıştım. Daha iyi anlamak için Gridview örneğine bakın. Internet erişim izni vermeyi unutmayın.
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
GalleryActivity.java
package com.android.gallery;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemClock;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Gallery;
import android.widget.Toast;
public class GalleryActivity extends Activity {
private Gallery gallery;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gallery=(Gallery) findViewById(R.id.gallery1_denem);
gallery.setAdapter(new GalleryAdapter(this));
}
@Override
protected void onResume() {
super.onResume();
gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) {
Toast.makeText(getApplicationContext(), "Position: "+position+"", Toast.LENGTH_SHORT).show();
}
});
}
}
GalleryAdapter.java
package com.android.gallery;
import java.io.InputStream;
import java.net.URL;
import android.app.ProgressDialog;
import android.content.Context;
import android.database.DataSetObserver;
import android.graphics.drawable.Drawable;
import android.os.AsyncTask;
import android.os.SystemClock;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.SpinnerAdapter;
public class GalleryAdapter extends BaseAdapter {
int galleryItem;
private Context context;
private GalleryConfig galleryConfig;
public GalleryAdapter(Context context) {
super();
this.context = context;
galleryConfig=new GalleryConfig();
}
@Override
public int getCount() {
return galleryConfig.getGallery_list().size();
}
@Override
public Object getItem(int position) {
return galleryConfig.getGallery_list().get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView=new ImageView(context);
imageView.setImageDrawable(loadImageFromURL(galleryConfig.getGallery_list().get(position)));
imageView.setLayoutParams(new Gallery.LayoutParams(150,120));
imageView.setScaleType(ImageView.ScaleType.FIT_XY);
return imageView;
}
private Drawable loadImageFromURL(String url)
{
try
{
InputStream is = (InputStream) new URL(url).getContent();
Drawable d = Drawable.createFromStream(is, "src");
return d;
}catch (Exception e) {
System.out.println(e);
return null;
}
}
}
GalleryConfig.java
package com.android.gallery;
import java.util.ArrayList;
public class GalleryConfig {
private ArrayList<String> gallery_list=new ArrayList<String>();
public ArrayList<String> getGallery_list() {
return gallery_list;
}
public void setGallery_list(ArrayList<String> gallery_list) {
this.gallery_list = gallery_list;
}
public GalleryConfig()
{
gallery_list.add("http://www.ethemsulan.com/wp-content/uploads/ara.png");
gallery_list.add("http://www.ethemsulan.com/wp-content/uploads/cikti5.png");
gallery_list.add("http://www.minare.net/wp-content/uploads/2011/01/android_ipod_touch_4.jpg");
gallery_list.add("http://blog.fommy.com/wp-content/uploads/2008/10/android-wallpaper1_1024x768.png");
gallery_list.add("http://www.buynetbookcomputer.com/android-netbook-images/android-netbook-big.jpg");
gallery_list.add("http://www.sharepointhoster.com/wp-content/uploads/2011/03/android_apps.jpeg");
gallery_list.add("http://www.ethemsulan.com/wp-content/uploads/customList.png");
gallery_list.add("http://www.ethemsulan.com/wp-content/uploads/handler.png");
gallery_list.add("http://www.ethemsulan.com/wp-content/uploads/xml.png");
gallery_list.add("http://www.ethemsulan.com/wp-content/uploads/progessbar.png");
}
}
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<Gallery
android:layout_height="wrap_content"
android:id="@+id/gallery1_denem"
android:layout_width="match_parent">
</Gallery>
</LinearLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.gallery"
android:versionCode="1"
android:versionName="1.0">
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application android:icon="@drawable/icon">
<activity android:name=".GalleryActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>


[...] Image URLelerini internetten çekmek bazen çok yararlı oluyor. Aynı şekilde oluşturulan Gallery örneğine bakabilirsiniz. Normalde res/drawable altında da imageleri atıp ve listeye [...]
Merhabalar, BaseAdapter ı implements eden GalleryAdapter sınıfını oluşturmaya çalıştıgımda hata alıyorum.BaseAdapter adında bi interface olmadıgı uyarısını veriyor?
bu örneklerin… xml ile resim ve text bilgi çekebilecek hali var mı ?
Android SAX Parser XML Parsing
Android XML Parsing from Internet with DOM
Resimleri listeledikten sonra büyük resimlerini başka bir activity de açmak istersek nasıl birşey yapmak gerekir.
Great example… But working slove… any reason ?
Merhaba, ben gallery’imi kaydırmak istiyorum. Yani üzerine marquee özelliği eklemek istiyorum. Normalde bunu bir textview üzerinde yapabiliyorum ama gallery üzerinde deniyince hata alıyorum. Nasıl yapabilirim ??