كما عودناكم دائما على مدونتي الرائعه
عالم البرمجهيسرني ان اقدم لكم اليوم شرح مبسط عن كيفيه عمل تطبيق
معرض الصور.
حيث يمكنك تصفح كل صورك بنفسك من البرنامج
من حيث اضافه الصور الي البرنامج..
كيفيه صنع تطبيق معرض الصور عبر اكواد Javaشاهد معي...
نبدء الان باول خطوه وهي....
...
نبدء ننشأ ملف
GalleryDemoActivity.java
ومن ثم ننشاء هاذه البيانات اليه
package bsheer.ali.gallery.mhaoh;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
public class GalleryDemoActivity extends Activity {
private ImageView selectedImageView;
private ImageView leftArrowImageView;
private ImageView rightArrowImageView;
private Gallery gallery;
private int selectedImagePosition = 0;
private List drawables;
private GalleryImageAdapter galImageAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
private void setupUI() {
gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onNothingSelected(AdapterViewarg0) {
}
});
galImageAdapter = new GalleryImageAdapter(this, drawables);
gallery.setAdapter(galImageAdapter);
if (drawables.size() > 0) {
gallery.setSelection(selectedImagePosition, false);
}
if (drawables.size() == 1) {
rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_disabled));
}
}
private void changeBorderForSelectedImage(int selectedItemPos) {
ImageView imageView = (ImageView) gallery.getSelectedView();
imageView.setBackgroundDrawable(getResources().getDrawable(R.drawable.selected_image_border));
imageView.setPadding(3, 3, 3, 3);
}
private void getDrawablesList() {
drawables = new ArrayList();
drawables.add(getResources().getDrawable(R.drawable.img1));
drawables.add(getResources().getDrawable(R.drawable.img2));
drawables.add(getResources().getDrawable(R.drawable.img3));
drawables.add(getResources().getDrawable(R.drawable.img4));
drawables.add(getResources().getDrawable(R.drawable.img5));
drawables.add(getResources().getDrawable(R.drawable.img6));
drawables.add(getResources().getDrawable(R.drawable.img7));
drawables.add(getResources().getDrawable(R.drawable.img8));
drawables.add(getResources().getDrawable(R.drawable.img9));
drawables.add(getResources().getDrawable(R.drawable.img10));
drawables.add(getResources().getDrawable(R.drawable.img11));
drawables.add(getResources().getDrawable(R.drawable.img12));
drawables.add(getResources().getDrawable(R.drawable.img13));
drawables.add(getResources().getDrawable(R.drawable.img14));
drawables.add(getResources().getDrawable(R.drawable.img15));
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.ImageView.ScaleType;
public class GalleryDemoActivity extends Activity {
private ImageView selectedImageView;
private ImageView leftArrowImageView;
private ImageView rightArrowImageView;
private Gallery gallery;
private int selectedImagePosition = 0;
private List
private GalleryImageAdapter galImageAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
getDrawablesList();
setupUI();
}setContentView(R.layout.main);
getDrawablesList();
setupUI();
private void setupUI() {
selectedImageView = (ImageView) findViewById(R.id.selected_imageview);
leftArrowImageView = (ImageView) findViewById(R.id.left_arrow_imageview);
rightArrowImageView = (ImageView) findViewById(R.id.right_arrow_imageview);
gallery = (Gallery) findViewById(R.id.gallery);
leftArrowImageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (selectedImagePosition > 0) {
--selectedImagePosition;
}
gallery.setSelection(selectedImagePosition, false);
}
});
rightArrowImageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (selectedImagePosition < drawables.size() - 1) {
++selectedImagePosition;
}
gallery.setSelection(selectedImagePosition, false);
}
});leftArrowImageView = (ImageView) findViewById(R.id.left_arrow_imageview);
rightArrowImageView = (ImageView) findViewById(R.id.right_arrow_imageview);
gallery = (Gallery) findViewById(R.id.gallery);
leftArrowImageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (selectedImagePosition > 0) {
--selectedImagePosition;
}
gallery.setSelection(selectedImagePosition, false);
}
});
rightArrowImageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (selectedImagePosition < drawables.size() - 1) {
++selectedImagePosition;
}
gallery.setSelection(selectedImagePosition, false);
}
gallery.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterViewparent, View view, int pos, long id) {
selectedImagePosition = pos;
if (selectedImagePosition > 0 && selectedImagePosition < drawables.size() - 1) {
leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_enabled));
rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_enabled));
} else if (selectedImagePosition == 0) {
leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_disabled));
} else if (selectedImagePosition == drawables.size() - 1) {
rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_disabled));
}
changeBorderForSelectedImage(selectedImagePosition);
setSelectedImage(selectedImagePosition);
}public void onItemSelected(AdapterViewparent, View view, int pos, long id) {
selectedImagePosition = pos;
if (selectedImagePosition > 0 && selectedImagePosition < drawables.size() - 1) {
leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_enabled));
rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_enabled));
} else if (selectedImagePosition == 0) {
leftArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_left_disabled));
} else if (selectedImagePosition == drawables.size() - 1) {
rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_disabled));
}
changeBorderForSelectedImage(selectedImagePosition);
setSelectedImage(selectedImagePosition);
@Override
public void onNothingSelected(AdapterViewarg0) {
}
});
galImageAdapter = new GalleryImageAdapter(this, drawables);
gallery.setAdapter(galImageAdapter);
if (drawables.size() > 0) {
gallery.setSelection(selectedImagePosition, false);
}
if (drawables.size() == 1) {
rightArrowImageView.setImageDrawable(getResources().getDrawable(R.drawable.arrow_right_disabled));
}
}
private void changeBorderForSelectedImage(int selectedItemPos) {
int count = gallery.getChildCount();
for (int i = 0; i < count; i++) {
ImageView imageView = (ImageView) gallery.getChildAt(i);
imageView.setBackgroundDrawable(getResources().getDrawable(R.drawable.image_border));
imageView.setPadding(3, 3, 3, 3);
}for (int i = 0; i < count; i++) {
ImageView imageView = (ImageView) gallery.getChildAt(i);
imageView.setBackgroundDrawable(getResources().getDrawable(R.drawable.image_border));
imageView.setPadding(3, 3, 3, 3);
ImageView imageView = (ImageView) gallery.getSelectedView();
imageView.setBackgroundDrawable(getResources().getDrawable(R.drawable.selected_image_border));
imageView.setPadding(3, 3, 3, 3);
}
private void getDrawablesList() {
drawables = new ArrayList
drawables.add(getResources().getDrawable(R.drawable.img1));
drawables.add(getResources().getDrawable(R.drawable.img2));
drawables.add(getResources().getDrawable(R.drawable.img3));
drawables.add(getResources().getDrawable(R.drawable.img4));
drawables.add(getResources().getDrawable(R.drawable.img5));
drawables.add(getResources().getDrawable(R.drawable.img6));
drawables.add(getResources().getDrawable(R.drawable.img7));
drawables.add(getResources().getDrawable(R.drawable.img8));
drawables.add(getResources().getDrawable(R.drawable.img9));
drawables.add(getResources().getDrawable(R.drawable.img10));
drawables.add(getResources().getDrawable(R.drawable.img11));
drawables.add(getResources().getDrawable(R.drawable.img12));
drawables.add(getResources().getDrawable(R.drawable.img13));
drawables.add(getResources().getDrawable(R.drawable.img14));
drawables.add(getResources().getDrawable(R.drawable.img15));
//هنا قمنا بانشاء صور ووضعنا اسم img1 وimg2.....الي 15 صوره
}
private void setSelectedImage(int selectedImagePosition) {
BitmapDrawable bd = (BitmapDrawable) drawables.get(selectedImagePosition);
Bitmap b = Bitmap.createScaledBitmap(bd.getBitmap(), (int) (bd.getIntrinsicHeight() * 0.9), (int) (bd.getIntrinsicWidth() * 0.7), false);
selectedImageView.setImageBitmap(b);
selectedImageView.setScaleType(ScaleType.FIT_XY);
}
}
}
private void setSelectedImage(int selectedImagePosition) {
BitmapDrawable bd = (BitmapDrawable) drawables.get(selectedImagePosition);
Bitmap b = Bitmap.createScaledBitmap(bd.getBitmap(), (int) (bd.getIntrinsicHeight() * 0.9), (int) (bd.getIntrinsicWidth() * 0.7), false);
selectedImageView.setImageBitmap(b);
selectedImageView.setScaleType(ScaleType.FIT_XY);
}
}
واما الان ننتقل الى الملف الاخرنقوم بتسميته
GalleryImageAdapter.java
نقوم باضافه التالى...
package bsheer.ali.gallery.mhaoh;
import java.util.List;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
public class GalleryImageAdapter extends BaseAdapter {
private Activity context;
private static ImageView imageView;
private List plotsImages;
private static ViewHolder holder;
public GalleryImageAdapter(Activity context, List plotsImages) {
this.context = context;
this.plotsImages = plotsImages;
}
@Override
public int getCount() {
@Override
public Object getItem(int position) {
@Override
public long getItemId(int position) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
private static class ViewHolder {
}
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
public class GalleryImageAdapter extends BaseAdapter {
private Activity context;
private static ImageView imageView;
private List
private static ViewHolder holder;
public GalleryImageAdapter(Activity context, List
this.context = context;
this.plotsImages = plotsImages;
}
@Override
public int getCount() {
return plotsImages.size();
}@Override
public Object getItem(int position) {
return null;
}@Override
public long getItemId(int position) {
return 0;
}@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
holder = new ViewHolder();
imageView = new ImageView(this.context);
imageView.setPadding(3, 3, 3, 3);
convertView = imageView;
holder.imageView = imageView;
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.imageView.setImageDrawable(plotsImages.get(position));
holder.imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
holder.imageView.setLayoutParams(new Gallery.LayoutParams(80, 70));
return imageView;
}holder = new ViewHolder();
imageView = new ImageView(this.context);
imageView.setPadding(3, 3, 3, 3);
convertView = imageView;
holder.imageView = imageView;
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.imageView.setImageDrawable(plotsImages.get(position));
holder.imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
holder.imageView.setLayoutParams(new Gallery.LayoutParams(80, 70));
return imageView;
private static class ViewHolder {
ImageView imageView;
}}
وننتقل الان الى الخطوه الاخيره وهي ملف xmlنضع ملف باسم...
main.xml
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white"
android:orientation="vertical" >
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@+id/gallery_relative_layout"
android:layout_marginLeft="10dip"
android:layout_margin="10dip"/>
android:layout_width="fill_parent"
android:layout_height="100dip"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dip"
android:src="@drawable/arrow_left_disabled" />
android:layout_width="80dip"
android:layout_height="700dip"
android:layout_marginLeft="5dip"
android:layout_marginRight="5dip"
android:layout_toLeftOf="@+id/right_arrow_imageview"
android:layout_toRightOf="@+id/left_arrow_imageview"
android:spacing="10dip" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="10dip"
android:src="@drawable/arrow_right_enabled" />
واما الان ننتقل الى تشغيل التطبيق صدقني انه يبدو بشكل جميل جدا...
الى هنا ينتهي موضوعي لهاذ اليوم انشاء الله تكون معلومات مفيده جدا.وان يكون قد نال اعجابكم
نشكركم على حسن المتابعه الرائعه..مدونتي
تعليقات
إرسال تعليق