我對Android動畫和手勢比較陌生。圖片之間滑動android
我有15張圖片想要滑動。每次只有一個圖像出現在屏幕上,當我在第一張圖像上滑動L-> R時,第二張圖像會顯示出來,等等 - 就像幻燈片一樣。我看了一下Android Gallery教程,但我不想顯示縮略圖。我的理解是使用ImageView並不斷更改圖像。這是正確的方式還是有更好的方法呢?
我對Android動畫和手勢比較陌生。圖片之間滑動android
我有15張圖片想要滑動。每次只有一個圖像出現在屏幕上,當我在第一張圖像上滑動L-> R時,第二張圖像會顯示出來,等等 - 就像幻燈片一樣。我看了一下Android Gallery教程,但我不想顯示縮略圖。我的理解是使用ImageView並不斷更改圖像。這是正確的方式還是有更好的方法呢?
這樣你就不會看到投擲效果。
有一種方式與畫廊做到這一點。
clreate這樣的galery:
<Gallery xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:id="@+id/HorizontalGallery"
android:gravity="center_vertical" android:spacing="2px"/>
在getview你必須:
public View getView(int position, View convertView, ViewGroup parent) {
ImageView i = new ImageView(_Context);
i.setImageResource(R.drawable.YourPicture);
i.setLayoutParams(new Gallery.LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT));
//setting the scale:
int viewWidthtmp;
int viewHeighttmp;
if(getHeight() == 0)
{
if(_horizGallery.getWidth() == 0){
viewWidthtmp = _horizGallery.getWidth();
viewHeighttmp = _horizGallery.getHeight();
}
else
{
viewWidthtmp = _screenWidth;
viewHeighttmp = _screenHeight;
}
//getting the size of the image.
BitmapFactory.Options o = new BitmapFactory.Options();
o.inJustDecodeBounds = true; //returns null, but fills the out methods
bm = BitmapFactory.decodeResource(getResources(), R.drawable.YourPicture, o);
if(o.outHeight> viewHeight || o.outWidth> viewWidth)
{i.setScaleType(ImageView.ScaleType.CENTER_INSIDE);}
else
{i.setScaleType(ImageView.ScaleType.FIT_CENTER);}
//DO NOT ADD the line below
//i.setBackgroundResource(mGalleryItemBackground);
return i;
}
你也要申報2級全局變量的變量,並在活動的OnCreate初始化它們。
public class ScrollingGallery extends Activity
{
private int _screenWidth;
private int _screenHeight;
...
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.scrollingallery);
Display display = getWindowManager().getDefaultDisplay();
_screenWidth = display.getWidth();
_screenHeight = display.getHeight();
...
之後,你只需要用定時器畫廊滾動。
如果我沒有弄錯,這應該與整頁畫廊一起工作。代碼有點長,我只是寫了它,所以可能有一個錯誤。
感謝您的努力!我實際上不得不使用投球,因爲只有當用戶在屏幕上水平滑動他的手指時,圖像纔會改變。 – 2011-04-01 17:21:08
畫廊一炮而紅。如果你希望只有一個圖像滾動,而lingigng轉到http://stackoverflow.com/questions/2373617/how-to-stop-scrolling-in-a-gallery-widget。 – 2011-04-01 19:52:48
謝謝!這有幫助! – 2011-04-04 14:25:43
您仍然可以使用圖庫;只需將其全屏並首先使用較大的圖像即可。 – 2011-04-01 16:17:58
謝謝Yoni。隨着畫廊,我不知道如何得到相同的投影效果。此外,在畫廊縮略圖 - 我需要顯示文字,當縮略圖被點擊 - 我需要打開一個新的畫廊。 – 2011-04-01 17:42:10
謝謝Yoni!我使用了Gallery,將圖像製作成全屏,然後使用這裏的合併教程:http://developer.android.com/resources/articles/layout-tricks-merge.html – 2011-04-04 14:40:37