3d迴圈倒影gallery元件

2021-06-28 20:05:18 字數 3849 閱讀 3376

最近在學習gallery元件,想實現乙個3d效果,能迴圈拖動,從前人那總結的**。

現有乙個bug還望高手能解答,在androidmanifest.xml中 當sdk版本在4.0以上時如android:targetsdkversion="18" 會出現如下圖現象,即居中回旋轉

**如下

自定義gallery,實現3d效果

package com.example.instructions.view;

import android.content.context;

import android.graphics.camera;

import android.graphics.matrix;

import android.util.attributeset;

import android.view.view;

import android.view.animation.transformation;

import android.widget.gallery;

import android.widget.imageview;

public class flowgallery extends gallery

public flowgallery(context context, attributeset attrs)

public flowgallery(context context, attributeset attrs, int defstyle)

public int getmaxrotationangle()

public void setmaxrotationangle(int maxrotationangle)

public int getmaxzoom()

public void setmaxzoom(int maxzoom)

private int getcenterofcoverflow()

private static int getcenterofview(view view)

// 控制gallery中每個的旋轉(重寫的gallery中方法)

protected boolean getchildstatictransformation(view child, transformation t) else

transformimagebitmap((imageview) child, t, rotationangle);

}return true;

}protected void onsizechanged(int w, int h, int oldw, int oldh)

private void transformimagebitmap(imageview child, transformation t,

int rotationangle)

// 在y軸上旋轉,對應豎向向里翻轉.

// 如果在x軸上旋轉,則對應橫向向里翻轉.

mcamera.rotatey(rotationangle);

mcamera.getmatrix(imagematrix);

imagematrix.pretranslate(-(imagewidth / 2), -(imageheight / 2));

imagematrix.posttranslate((imagewidth / 2), (imageheight / 2));

mcamera.restore();

}}

在adapter中實現倒影效果

package com.example.instructions.adapter;

import android.content.context;

import android.content.res.resources;

import android.graphics.bitmap;

import android.graphics.bitmap.config;

import android.graphics.bitmapfactory;

import android.graphics.canvas;

import android.graphics.lineargradient;

import android.graphics.matrix;

import android.graphics.paint;

import android.graphics.porterduffxfermode;

import android.graphics.shader.tilemode;

import android.view.view;

import android.view.viewgroup;

import android.widget.baseadapter;

import android.widget.imageview;

import android.widget.imageview.scaletype;

import com.example.instructions.view.flowgallery;

public class adapter_gallery extends baseadapter

/** 建立倒影效果

* * @return

*/public boolean createreflectedimages()

return true;

}public int getcount()

public object getitem(int position)

public long getitemid(int position)

public view getview(int position, view convertview, viewgroup parent)

public float getscale(boolean focused, int offset)

}

activity呼叫

public class activity_gallery extends activity ;

adapter = new adapter_gallery(this, images);

adapter.createreflectedimages(); // 建立倒影效果

galleryflow = (flowgallery) this.findviewbyid(r.id.gallery01);

// mmyview = (flowindicator) this.findviewbyid(r.id.myview);

// mmyview.setcount(3);

// mmyview.setseletion(0);

galleryflow.setfadingedgelength(0);

galleryflow.setadapter(adapter);

galleryflow.setselection(3000);

galleryflow.setonitemselectedlistener(new onitemselectedlistener()

@override

public void onnothingselected(adapterview<?> arg0)

});galleryflow.setonitemclicklistener(new onitemclicklistener()

}});

}}

3D旋轉帶倒影相簿

利用css3以及一些簡單的js邏輯,實現乙個可拖拽的3d拖拽旋轉帶倒影相簿 相簿的邏輯部分是基於jquery實現的,先看一下效果圖,出生動畫為捲簾式,可以對相簿進行3d無死角拖拽旋轉?來自網路,別當真 頁面資源載入完畢初始化的旋轉終點 相對螢幕的高度,設定每張的動畫延遲,達到一種捲簾式展開的效果。涉...

wpf做的3d滑動gallery

隨著iphone ipad的流行及熱捧,現在做移動產品不管是什麼平台的,領導總想做成像ios系統的樣子。自從微軟發布了window8預覽版之後,領導就想著把公司的移動產品移殖到window8上去了。公司的移動產品的主介面是做成3d gallery的立體畫冊效果的,如下圖 window8是不帶這樣的控...

不要為3d而3d

和以前的幾個朋友聊天,也有做game的。發現大家對3d技術都非常熱衷,但是這種熱衷顯得刻意的 為3d而3d,就有點捨本逐末。1 遊戲最重要的是策劃,需要具體的滿足人心底的某種需求,2 3d需要 好顯示卡的支援,這樣就將一部分使用者排斥在外面了。3 現在3d engine已經 很成熟了,通過這些上面的...