import
android.content.Context;
import
android.view.View;
import
android.view.ViewGroup;
import
android.widget.BaseAdapter;
import
android.widget.Gallery;
import
android.widget.ImageView;
public
class
ImageAdapter
extends
BaseAdapter {
private
Context mContext;
//array of integers for images IDs
private
Integer[] mImageIds = {
R.drawable.avatar_423,
R.drawable.da,
R.drawable.penguins
};
//constructor
public
ImageAdapter (Context c){
mContext = c;
}
@Override
public
int
getCount() {
return
mImageIds.length;
}
@Override
public
Object getItem(
int
i) {
return
i;
}
@Override
public
long
getItemId(
int
i) {
return
i;
}
@Override
public
View getView(
int
i, View view, ViewGroup viewGroup) {
ImageView imageView =
new
ImageView(mContext);
imageView.setImageResource(mImageIds[i]);
imageView.setLayoutParams(
new
Gallery.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT));
return
imageView;
}
}
Main.xml
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
android:orientation
=
"vertical"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
>
<
TextView
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
android:text
=
"Hello World, MyActivity"
/>
<!-- This is the Gallery -->
android:id
=
"@+id/gallery"
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
/>
<!-- This LinearLayout if for the dots -->
<
LinearLayout
android:id
=
"@+id/image_count"
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
android:orientation
=
"horizontal"
android:gravity
=
"center"
android:background
=
"#00000000"
>
</
LinearLayout
>
</
LinearLayout
>
MainActivity
import
android.app.Activity;
import
android.graphics.Color;
import
android.graphics.Typeface;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.*;
public
class
MyActivity
extends
Activity
{
static
TextView mDotsText[];
private
int
mDotsCount;
private
LinearLayout mDotsLayout;
@Override
public
void
onCreate(Bundle savedInstanceState)
{
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
//here we create the gallery and set our adapter created before
Gallery gallery = (Gallery)findViewById(R.id.gallery);
gallery.setAdapter(
new
ImageAdapter(
this
));
mDotsLayout = (LinearLayout)findViewById(R.id.image_count);
//here we count the number of images we have to know how many dots we need
mDotsCount = gallery.getAdapter().getCount();
//here we create the dots
//as you can see the dots are nothing but "." of large size
mDotsText =
new
TextView[mDotsCount];
//here we set the dots
for
(
int
i =
0
; i < mDotsCount; i++) {
mDotsText[i] =
new
TextView(
this
);
mDotsText[i].setText(
"."
);
mDotsText[i].setTextSize(
45
);
mDotsText[i].setTypeface(
null
, Typeface.BOLD);
mDotsText[i].setTextColor(android.graphics.Color.GRAY);
mDotsLayout.addView(mDotsText[i]);
}
//when we scroll the images we have to set the dot that corresponds to the image to White and the others
//will be Gray
gallery.setOnItemSelectedListener(
new
AdapterView.OnItemSelectedListener() {
@Override
public
void
onItemSelected(AdapterView adapterView, View view,
int
pos,
long
l) {
for
(
int
i =
0
; i < mDotsCount; i++) {
MyActivity.mDotsText[i]
.setTextColor(Color.GRAY);
}
MyActivity.mDotsText[pos]
.setTextColor(Color.WHITE);
}
@Override
public
void
onNothingSelected(AdapterView adapterView) {
}
});
}
}
Done:)
No comments:
Post a Comment