mybecks
- Forum-Beiträge: 27
28.10.2010, 15:41:45 via Website
28.10.2010 15:41:45 via Website
Hallo zusammen,
Ich habe eine GridView in welchem eine beliebige Anzahl Bilder dargestellt wird, wenn ich ein Bild selektiere öffne ich eine neue Activity welche mir das Bild in groß anzeigt (max. Größe des Displays). Nun möchte ich das ganze erweitern. Habe nun eine HorizontalScrollBar eingebaut, welche als Child eine ImageView besitzt. Nun ist es mein Vorhaben zwischen den Bilder des Grids in Groß zu blättern (vor & zurück ab den selektierten Image des Grids).
Mein Ansatz bisher ist, dass ich her gehe und sobald die onTouch() Methode ausgeführt wird, prüfe welcher MotionEvent.ACTION_UP& ACTION_DOWN getriggert wird und x > currentPosition oder x < currentPosition und dann das nächste Bild in meine ImageView lade. Aber genau das ist auch der Punkt wo ich nicht mehr weiter weiß, bzw. der auch nicht funktioniert. Was auch seltsam ist, wenn ich als Layout Container ein ImageView habe zeigt er mir das Bild in der max Größe an (hochskalliert auf max. des Displays), sobald ich die HSV drumherum habe, nur auf die "normale" Größe des Bildes.
Layout:
ImageBig.java
Viele Grüße & Dank,
mybecks
Ich habe eine GridView in welchem eine beliebige Anzahl Bilder dargestellt wird, wenn ich ein Bild selektiere öffne ich eine neue Activity welche mir das Bild in groß anzeigt (max. Größe des Displays). Nun möchte ich das ganze erweitern. Habe nun eine HorizontalScrollBar eingebaut, welche als Child eine ImageView besitzt. Nun ist es mein Vorhaben zwischen den Bilder des Grids in Groß zu blättern (vor & zurück ab den selektierten Image des Grids).
Mein Ansatz bisher ist, dass ich her gehe und sobald die onTouch() Methode ausgeführt wird, prüfe welcher MotionEvent.ACTION_UP& ACTION_DOWN getriggert wird und x > currentPosition oder x < currentPosition und dann das nächste Bild in meine ImageView lade. Aber genau das ist auch der Punkt wo ich nicht mehr weiter weiß, bzw. der auch nicht funktioniert. Was auch seltsam ist, wenn ich als Layout Container ein ImageView habe zeigt er mir das Bild in der max Größe an (hochskalliert auf max. des Displays), sobald ich die HSV drumherum habe, nur auf die "normale" Größe des Bildes.
Layout:
1<?xml version="1.0" encoding="utf-8"?>
2<HorizontalScrollView
3 xmlns:android="http://schemas.android.com/apk/res/android"
4 android:id="@+id/hsv"
5 android:layout_width="fill_parent"
6 android:layout_height="fill_parent">
7 <ImageView
8 android:layout_width="fill_parent"
9 android:layout_height="fill_parent"
10 android:id="@+id/imageBig">
11</ImageView>
12</HorizontalScrollView>
2<HorizontalScrollView
3 xmlns:android="http://schemas.android.com/apk/res/android"
4 android:id="@+id/hsv"
5 android:layout_width="fill_parent"
6 android:layout_height="fill_parent">
7 <ImageView
8 android:layout_width="fill_parent"
9 android:layout_height="fill_parent"
10 android:id="@+id/imageBig">
11</ImageView>
12</HorizontalScrollView>
ImageBig.java
1public class ImageBig extends Activity{
2
3 private static final String TAG = "ImageBig";
4 private ImageView image;
5 private HorizontalScrollView hsv;
6
7 @Override
8 protected void onCreate(Bundle savedInstanceState) {
9 super.onCreate(savedInstanceState);
10// setContentView(R.layout.image_layout);
11 setContentView(R.layout.horizontalscroll_layout);
12 setTitle(getIntent().getExtras().getString("title"));
13 final MagazineList list = MagazineHandler.getMagazines();
14 final int pos = getIntent().getExtras().getInt("pos");
15
16 image = (ImageView) findViewById(R.id.imageBig);
17
18 image.setImageDrawable(HelperMethods.loadImageFromWeb(list.getMagazines().get(pos).getImageBig()));
19
20 hsv = (HorizontalScrollView) findViewById(R.id.hsv);
21 hsv.setOnTouchListener(new OnTouchListener() {
22
23 @Override
24 public boolean onTouch(View v, MotionEvent event) {
25 if(event.getAction() == MotionEvent.ACTION_UP)
26 {
27 Log.i(TAG, event.getAction()+"");
28 image.setImageDrawable(HelperMethods.loadImageFromWeb(list.getMagazines().get(pos+1).getImageBig()));
29 }
30
31 return false;
32
33 }
34 });
35
36 image.setOnClickListener(new View.OnClickListener(){
37
38 @Override
39 public void onClick(View v) {
40 Intent intent = new Intent(ImageBig.this, MagazineDetails.class);
41 intent.putExtra("pos", pos);
42 intent.putExtra("title", getIntent().getExtras().getString("title"));
43 startActivity(intent);
44 }
45 });
46 }
47}
2
3 private static final String TAG = "ImageBig";
4 private ImageView image;
5 private HorizontalScrollView hsv;
6
7 @Override
8 protected void onCreate(Bundle savedInstanceState) {
9 super.onCreate(savedInstanceState);
10// setContentView(R.layout.image_layout);
11 setContentView(R.layout.horizontalscroll_layout);
12 setTitle(getIntent().getExtras().getString("title"));
13 final MagazineList list = MagazineHandler.getMagazines();
14 final int pos = getIntent().getExtras().getInt("pos");
15
16 image = (ImageView) findViewById(R.id.imageBig);
17
18 image.setImageDrawable(HelperMethods.loadImageFromWeb(list.getMagazines().get(pos).getImageBig()));
19
20 hsv = (HorizontalScrollView) findViewById(R.id.hsv);
21 hsv.setOnTouchListener(new OnTouchListener() {
22
23 @Override
24 public boolean onTouch(View v, MotionEvent event) {
25 if(event.getAction() == MotionEvent.ACTION_UP)
26 {
27 Log.i(TAG, event.getAction()+"");
28 image.setImageDrawable(HelperMethods.loadImageFromWeb(list.getMagazines().get(pos+1).getImageBig()));
29 }
30
31 return false;
32
33 }
34 });
35
36 image.setOnClickListener(new View.OnClickListener(){
37
38 @Override
39 public void onClick(View v) {
40 Intent intent = new Intent(ImageBig.this, MagazineDetails.class);
41 intent.putExtra("pos", pos);
42 intent.putExtra("title", getIntent().getExtras().getString("title"));
43 startActivity(intent);
44 }
45 });
46 }
47}
Viele Grüße & Dank,
mybecks
— geändert am 28.10.2010, 16:27:59
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.