Uno della mia attività app si chiama attività DayGallery (galleria infinite immagini),galleria infinita scorrimento con la posizione dell'immagine determinata
quando apro la galleria, si mostrano prima immagine in modo casuale, e non iniziare prima immagine con i specificato nel codice attività DayGallery.
quello che sto cercando di realizzare è:
PRIMO: iniziare prima immagine specificata nel DayGallery codice di attività come di seguito con:
quando è aperta la galleria Day1, prima immagine che appare è:
R.drawable.day_one_1
e quando è aperta la galleria Day2, prima immagine che appare è:
R.drawable.day_two_1
e come quello per la galleria Tutti i giorni, anche mantenere lo scorrimento illimitato su entrambi i lati.
SECONDO: se am nella galleria fermato sull'immagine chiamato day_one_7 per esempio, quindi premere di nuovo per andare a attività precedente e tornare di nuovo alla galleria, voglio vedere la stessa immagine che ho visto prima della mia partenza galleria, ma se esco dall'app, apro di nuovo la galleria, deve resettare per mostrare la prima immagine che ho specificato nel codice attività DayGallery, spiegato come immagine qui sotto.
in realtà ho cercato di Google per questo scopo, ma non posso ottenere qualsiasi cosa utile a questo proposito,
qualsiasi aiuto sarà molto apprezzato.
DayGallery.java:
@SuppressWarnings("deprecation")
public class DayGallery extends Activity {
TextView tv;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
Boolean customTitleSupported = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
// Set the layout to use
setContentView(R.layout.main);
if (customTitleSupported) {
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,R.layout.custom_title);
tv = (TextView) findViewById(R.id.title_tv1);
tv.setTypeface(FontFactory.getBFantezy(getBaseContext()));
}
InfiniteGallery galleryOne = (InfiniteGallery) findViewById(R.id.galleryOne);
galleryOne.setAdapter(initializeImages());
galleryOne.setSelection(galleryOne.getCount()/2);
}
private InfiniteGalleryAdapter initializeImages() {
InfiniteGalleryAdapter galleryAdapter = null;
String day = getIntent().getStringExtra("dayname");
if(day.equalsIgnoreCase("Day1")){
int[] tempimages = { R.drawable.day_one_1, R.drawable.day_one_2,R.drawable.day_one_3,
R.drawable.day_one_4, R.drawable.day_one_5,R.drawable.day_one_6,R.drawable.day_one_7,
R.drawable.day_one_8, R.drawable.day_one_9,R.drawable.day_one_10,R.drawable.day_one_11,
R.drawable.day_one_12
};
String[] name = { "00:35","00:35","00:35","1:07","2:00","2:01","2:09",
"2:12","2:15","6:13","6:13","6:13"
};
tv.setText("Day one pictures");
galleryAdapter=new InfiniteGalleryAdapter(this, tempimages, name);
}
else if(day.equalsIgnoreCase("Day2")){
int[] tempimages = { R.drawable.day_two_1, R.drawable.day_two_2,R.drawable.day_two_3,
R.drawable.day_two_4, R.drawable.day_two_5,R.drawable.day_two_6,R.drawable.day_two_7,
R.drawable.day_two_8, R.drawable.day_two_9,R.drawable.day_two_10,R.drawable.day_two_11,
R.drawable.day_two_12
};
String[] name = { "12:04","12:04", "12:04","12:05","12:06", "12:07",
"12:07","12:07","12:08","12:10","12:10","12:10"
};
tv.setText("Day two pictures");
galleryAdapter=new InfiniteGalleryAdapter(this, tempimages, name);
}
// AND THE SAME FOR REST OF DAYS TILL Day10//
return galleryAdapter;
}
}
class InfiniteGalleryAdapter extends BaseAdapter {
private Context mContext;
private int[] images;
private String[] name;
public InfiniteGalleryAdapter(Context c, int[] imageIds,String[] names) {
this.mContext = c;
images = imageIds;
name=names;
inflater = (LayoutInflater)mContext.getSystemService (Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return Integer.MAX_VALUE;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
private LayoutInflater inflater=null;
public class ViewHolder{
public TextView text;
public ImageView image;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView i = getImageView();
int itemPos = (position % images.length);
try { i.setImageResource(images[itemPos]); ((BitmapDrawable) i.getDrawable()).setAntiAlias(true);
}
catch (OutOfMemoryError e) { Log.e("InfiniteGalleryAdapter", "Out of memory creating imageview. Using empty view.", e);
}
View vi=convertView;
ViewHolder holder;
if(convertView==null){
vi = inflater.inflate(R.layout.gallery_items, null);
holder=new ViewHolder();
holder.text=(TextView)vi.findViewById(R.id.textView1);
holder.image=(ImageView)vi.findViewById(R.id.image);
vi.setTag(holder);
}
else holder=(ViewHolder)vi.getTag();
holder.text.setText(name[itemPos]);
final int stub_id=images[itemPos];
holder.image.setImageResource(stub_id);
return vi;
}
private ImageView getImageView() {
ImageView i = new ImageView(mContext);
return i;
}
}
@SuppressWarnings("deprecation")
class InfiniteGallery extends Gallery {
public InfiniteGallery(Context context) {
super(context);
init();
}
public InfiniteGallery(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public InfiniteGallery(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init(){
// These are just to make it look pretty
setSpacing(25);
setHorizontalFadingEdgeEnabled(false);
}
}
UPDATE:
aggiungo questa riga di codice:
galleryOne.setSelection(0);
dopo questa riga:
galleryOne.setSelection(galleryOne.getCount()/2);
nel mio codice è risultato in mostra la prima immagine, come specificato in DayGallery attività, ma è il risultato di un modo di scorrimento infinito solo ma non in entrambi i lati sinistro,
Come possiamo due vie infinite lo scorrimento delle immagini della mia galleria con la prima immagine specificata nell'attività di DayGallery?
apprezzare davvero qualsiasi aiuto, grazie.
ho errore di riga rossa sotto questa parola: PageFragment in questa riga: Fragment fragment = new PageFragment(); , qualsiasi consiglio e per favore come sarà il layout activity_multiple_page_scroll.xml, grazie –
Ho modificato il codice per aggiungere PageFragment.java e activity_multiple_page_scroll.xml – Sushil
il mio firend questa prima volta lavora con frammenti quindi scusami per questo, ho un'altra linea rossa errore sotto parola: JavaScriptInterface in questa riga: mWebView.addJavascriptInterface (new JavaScriptInterface (getActivity()), "NativeFunc"); anche io ho bisogno del layout e del layout fragment.xml che includono R.id.webview, perché errore di linea rossa sotto: R.layout.fragment e R.id.webview perché non trova il layout xml, grazie molto –