2012-02-07 6 views
0

私はアンドロイドImageViewの疑いがあります。私はdrawableフォルダに画像を表示するサンプルアプリケーションを作っています。まず最初に、画像を表示するために私のレイアウトにGalleryviewImageviewを使用しました。画像をクリックすると、GalleryViewの画像がImageViewに表示されます。今、私はフロントのボタンをクリックした場合、私は私のres/drawableフォルダ内に10枚の画像を設定しているされてenter image description hereアンドロイドで、対応するボタンをクリックすると、前方または後方に移動できますか?

は、画像は、対応するボタンクリックで表示されるので、次のように実装したい、ImageViewで画像が表示されます前方に、他の場合は、戻るボタンをクリックしてImageViewの画像を後方に移動します。このようにすることは可能ですか?

は、私は、次のコードを使用しますが、画像は表示されません

main.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="fill_parent" 
     android:layout_height="333dp" 
     android:src="@drawable/ic_launcher" /> 

    <Gallery 
     android:id="@+id/galleryView" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" /> 

    <RelativeLayout 
     android:id="@+id/relativeLayout1" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" > 

     <Button 
      android:id="@+id/backBTN" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:text="B" /> 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_centerVertical="true" 
      android:text="imagePosition" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

     <Button 
      android:id="@+id/frontBTN" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/backBTN" 
      android:layout_alignBottom="@+id/backBTN" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:text="F" /> 
    </RelativeLayout> 

</LinearLayout> 

私のJavaコードMainActivity.javで、

package com.test.button.wallpaper; 

import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.BaseAdapter; 
import android.widget.Button; 
import android.widget.Gallery; 
import android.widget.ImageView; 

public class MainActivity extends Activity { 
    /** Called when the activity is first created. */ 
    Button front, back; 
    ImageView mImage; 
    Gallery mGallery; 
    int image_postion; 
    private int[] gal = { R.drawable.img_2, R.drawable.img_3, R.drawable.img_4, 
      R.drawable.img_5 }; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     front = (Button) findViewById(R.id.frontBTN); 
     back = (Button) findViewById(R.id.backBTN); 
     mImage = (ImageView) findViewById(R.id.imageView); 
     mGallery = (Gallery) findViewById(R.id.galleryView); 
     mGallery.setAdapter(new ImageAdapter(this)); 
     mGallery.setVisibility(View.GONE); 
     mGallery.setOnItemClickListener(new OnItemClickListener() { 

      @Override 
      public void onItemClick(AdapterView<?> arg0, View arg1, int loc, 
        long arg3) { 
       // TODO Auto-generated method stub 
       image_postion = loc; 
       System.out.println("Inside the Gallery"); 

      } 
     }); 

     back.setOnClickListener(new OnClickListener() { 

      public void onClick(View v) { 

       int position = mGallery.getSelectedItemPosition(); 
       if (position < mGallery.getCount() - 1) 
        mGallery.setSelection(position + 1); 

      } 
     }); 

     front.setOnClickListener(new OnClickListener() { 
      public void onClick(View v) { 

       int position = mGallery.getSelectedItemPosition(); 
       if (position >= 1) 
        mGallery.setSelection(position - 1); 

      } 
     }); 
    } 

    public class ImageAdapter extends BaseAdapter { 
     private Context ctx; 
     int imageBackground; 

     public ImageAdapter(Context c) { 
      ctx = c; 
      // TypedArray ta = obtainStyledAttributes(R.styleable.Gallery1); 
      // imageBackground = ta.getResourceId(
      // R.styleable.Gallery1_android_galleryItemBackground, 1); 
      // ta.recycle(); 
     } 

     @Override 
     public int getCount() { 

      return gal.length; 
     } 

     @Override 
     public Object getItem(int arg0) { 

      return arg0; 
     } 

     @Override 
     public long getItemId(int arg0) { 

      return arg0; 
     } 

     @Override 
     public View getView(int arg0, View arg1, ViewGroup arg2) { 
      ImageView iv = new ImageView(ctx); 
      iv.setImageResource(gal[arg0]); 
      iv.setScaleType(ImageView.ScaleType.FIT_XY); 
      iv.setLayoutParams(new Gallery.LayoutParams(150, 120)); 
      iv.setBackgroundResource(imageBackground); 
      return iv; 
     } 

    } 
} 

答えて

2

はい、ちょうどセットする位置を指定して

btnNext.setOnClickListener(new View.OnClickListener() 
{ 
    public void onClick(View view) 
    { 
      int position=gallery.getSelectedIndex(); 
      if(position<gallery.getCount()-1) 
      gallery.setSelection(position+1); 
    } 
}); 


btnPrevious.setOnClickListener(new View.OnClickListener() 
{ 
    public void onClick(View view) 
    { 
      int position=gallery.getSelectedIndex(); 
      if(position>=1) 
       gallery.setSelection(position-1); 
    } 
}); 
+0

を仕事と同じことを行う:私はgetSelectedIndex(にエラーが発生しました。このコードを挿入した場合)。 – Aerrow

+1

getPelectedItemPosition()にmethpodを変更します。 – jeet

1

は、私はそれが私のアプリperfectlyin

このXML

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:ns="http://schemas.android.com/apk/res/com.colors.abc" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" >   
    <RelativeLayout 
     android:id="@+id/item" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" >   
    <ImageView 
     android:id="@+id/image" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"    
     android:background="@drawable/image" /> 
    <Button 
     android:id="@+id/back" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"   
     android:text="small" /> 
    <Button 
     android:id="@+id/forword" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"   
     android:text="foeword" /> 
    </RelativeLayout> 
</RelativeLayout> 

とJava

  setimage(present);   
     back.setEnabled(false);  
     back.setOnClickListener(new OnClickListener() { 

     public void onClick(View v) {    

      if (past==1) { 
       back.setEnabled(false); 
      }else { 
       back.setEnabled(true); 
      } 
      if(past<=10) forword.setEnabled(true); 

      setimage(past);      

      }     
      }); 

       forword.setOnClickListener(new OnClickListener() {    
      public void onClick(View v) {     

       if(future==10){     
        forword.setEnabled(false); 
       }else { 
        forword.setEnabled(true); 
       } 
       if(future>=2) { 
        back.setEnabled(true); 
       }     
       setimage(future);      
      }    
     });  
関連する問題