一つはDayGallery活性(無限の画像ギャラリー)と呼ばれて決定された画像の位置でスクロール私はギャラリーを開いたときに、無限のギャラリー私のアプリの活動の
することは、それはランダムに最初の画像を表示し、最初の画像Iと起動しないDayGalleryアクティビティコードで指定されています。
何を達成しようとしていますと、次のとおりです。
FIRST:
オープン1日目のギャラリーは、表示される最初のイメージは次のとおりです:
R.drawable.day_one_1
以下のようにDayGalleryアクティビティコードで指定された最初の画像で始まる と開いているDay2ギャラリーの場合、最初に表示される画像は次のとおりです。
R.drawable.day_two_1
と同様に、すべてのDaysギャラリーでは、でもは両サイドで無制限にスクロールします。
SECOND:午前ギャラリーにそして、私はギャラリーを出る前に、私が見た同じ画像を見たいと思って、前のアクティビティに移動し、ギャラリーに再び戻るために戻って押し 例えばday_one_7という名前の画像の上に停止した場合私がアプリケーションを終了してギャラリーをもう一度開くと、DayGalleryアクティビティコードで指定された最初の画像を表示するようにリセットする必要があります(下の画像を参照)。
実際に任意のヘルプは高く評価されます
、私はその目的のためにグーグルを検索しかし、私はそれについての役に立つ事を得るカント。
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:この行の後に
galleryOne.setSelection(0);
:
が、私はこのコード行を追加します
galleryOne.setSelection(galleryOne.getCount()/2);
我々は無限の双方向を取得できますか私のコード、それはDayGallery活動でそれを指定された最初の画像を示すになりますが、それだけではなく、両方の側で左側に一方通行の無限スクロールになるで
、
DayGalleryアクティビティで指定された最初の画像を表示しながら、ギャラリー画像をスクロールしますか?
本当にありがとうございます、ありがとうございます。
この単語の下に赤い線のエラーがあります。この行のPageFragment:Fragment fragment = new PageFragment(); 、アドバイス、そして、どういうふうにactivity_multiple_page_scroll.xmlレイアウトがどうなるかを教えてください。 –
私はPageFragment.javaとactivity_multiple_page_scroll.xmlを追加するコードを編集しました。 – Sushil
私のfirendはこの初めての断片ですので、私は別の赤い線単語の下のエラー:この行のJavaScriptInterface:mWebView.addJavascriptInterface(新しいJavaScriptInterface(getActivity())、 "NativeFunc"); また、R.id.webviewを含むfragment.xmlレイアウトとレイアウトが必要です。なぜなら、R.layout.fragmentとR.id.webviewの下に赤い線エラーがあります。xmlレイアウトが見つからないためです。ありがとうございました。 –