android拖動gridview
1. android GridView如何實現類似桌面圖標的拖拽效果
GridView是系統提供的比較固定的UI控制項,如果你要實現桌面那樣的效果還是自已寫一個,或者重寫gridView。
Android是開源的,你可以找到GridView和home程序的源代碼學習
2. android GridView 如何設置為左右可滾動
上下空間大,還可以滾動,只要設置:mGridView
.setOnTouchListener(new
OnTouchListener()
{
@Override
public
boolean
onTouch(View
v,
MotionEvent
event)
{
Log.e("onTouch",
"MotionEvent.ACTION_MOVE");
return
MotionEvent.ACTION_MOVE
==
event.getAction()
?
true
:
false;
}
});這樣,就不能上下滾動了
3. Android中GridView如何與廣告位輪播實現一起滑動
1.首先自定義一個ViewFlow類。
2.然後定義一個CircleFlowIndicator類。
具體代碼依然見源碼;
3.接下來就在布局文件中開始使用了
<framelayout android:id="@+id/framelayout" android:layout_height="300dip" android:layout_width="fill_parent" android:orientation="vertical">
</framelayout>代碼中有個app:activeType,app:radius 這樣的東西,可能新手不是很明白到底是個shenmegui,解釋一下這是自定義屬性。
使用自定義屬性首先要記得把這個屬性相應的命名空間給加在布局文件的開頭,否則無法編譯。
xmlns:app=」http://schemas.android.com/apk/res-auto」
這些屬性都對應在attrs.xml文件中可以找到。
4.然後就可以在Activity中調用了,具體的代碼是:
/**
* @Description:顯示廣告條的主頁
* @author http://blog.csdn.net/finddreams
*/
public class MainActivity extends Activity {
private ViewFlow mViewFlow;
private CircleFlowIndicator mFlowIndicator;
private ArrayList imageUrlList = new ArrayList();
ArrayList linkUrlArray= new ArrayList();
ArrayList titleList= new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
imageUrlList.add(https://gss0..com/9vo3dSag_xI4khGko9WTAnF6hhy/image/pic/item/.jpg);
imageUrlList.add(https://gss0..com/-fo3dSag_xI4khGko9WTAnF6hhy/image/pic/item/.jpg);
imageUrlList.add(https://gss0..com/-Po3dSag_xI4khGko9WTAnF6hhy/image/pic/item/.jpg);
linkUrlArray.add(http://blog.csdn.net/finddreams/article/details/44301359);
linkUrlArray.add(http://blog.csdn.net/finddreams/article/details/43486527);
linkUrlArray.add(http://blog.csdn.net/finddreams/article/details/43194799);
titleList.add(Android開發面試經——);
titleList.add(Android控制項GridView之仿支付寶錢包首頁帶有分割線的GridView九宮格的完美實現);
titleList.add(Android動畫之仿美團載入數據等待時,小人奔跑進度動畫對話框 );
initBanner(imageUrlList);
}
private void initView() {
mViewFlow = (ViewFlow) findViewById(R.id.viewflow);
mFlowIndicator = (CircleFlowIndicator) findViewById(R.id.viewflowindic);
}
private void initBanner(ArrayList imageUrlList) {
mViewFlow.setAdapter(new ImagePagerAdapter(this, imageUrlList,
linkUrlArray, titleList).setInfiniteLoop(true));
mViewFlow.setmSideBuffer(imageUrlList.size()); // 實際圖片張數,
// ImageAdapter實際圖片張數為3
mViewFlow.setFlowIndicator(mFlowIndicator);
mViewFlow.setTimeSpan(4500);
mViewFlow.setSelection(imageUrlList.size() * 1000); // 設置初始位置
mViewFlow.startAutoFlowTimer(); // 啟動自動播放
}
}
5.有一個很關鍵的就是ImagePagerAdapter這個適配器,因為載入網路圖片是在這個類里實現的,還有廣告條的點擊,進入一個Web界面的實現。在這里載入網路圖片使用了一個很火的開源項目,UniversalImageLoader(非同步載入網路圖片) 。
ImagePagerAdapter.class 類:
/**
* @Description: 圖片適配器
* @author http://blog.csdn.net/finddreams
*/
public class ImagePagerAdapter extends BaseAdapter {
private Context context;
private List imageIdList;
private List linkUrlArray;
private List urlTitlesList;
private int size;
private boolean isInfiniteLoop;
private ImageLoader imageLoader;
private DisplayImageOptions options;
public ImagePagerAdapter(Context context, List imageIdList,
List urllist, List urlTitlesList) {
this.context = context;
this.imageIdList = imageIdList;
if (imageIdList != null) {
this.size = imageIdList.size();
}
this.linkUrlArray = urllist;
this.urlTitlesList = urlTitlesList;
isInfiniteLoop = false;
// 初始化imageLoader 否則會報錯
imageLoader = ImageLoader.getInstance();
imageLoader.init(ImageLoaderConfiguration.createDefault(context));
options = new DisplayImageOptions.Builder()
.showStubImage(R.drawable.ic_launcher) // 設置圖片下載期間顯示的圖片
.showImageForEmptyUri(R.drawable.meinv) // 設置圖片Uri為空或是錯誤的時候顯示的圖片
.showImageOnFail(R.drawable.meinv) // 設置圖片載入或解碼過程中發生錯誤顯示的圖片
.cacheInMemory(true) // 設置下載的圖片是否緩存在內存中
.cacheOnDisc(true) // 設置下載的圖片是否緩存在SD卡中
.build();
}
@Override
public int getCount() {
// Infinite loop
return isInfiniteLoop ? Integer.MAX_VALUE : imageIdList.size();
}
/**
* get really position
*
* @param position
* @return
*/
private int getPosition(int position) {
return isInfiniteLoop ? position % size : position;
}
@Override
public View getView(final int position, View view, ViewGroup container) {
final ViewHolder holder;
if (view == null) {
holder = new ViewHolder();
view = holder.imageView = new ImageView(context);
holder.imageView
.setLayoutParams(new ViewGroup.LayoutParams(-1, -1));
holder.imageView.setScaleType(ImageView.ScaleType.FIT_XY);
view.setTag(holder);
} else {
holder = (ViewHolder) view.getTag();
}
imageLoader.displayImage(
(String) this.imageIdList.get(getPosition(position)),
holder.imageView, options);
holder.imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
String url = linkUrlArray.get(ImagePagerAdapter.this
.getPosition(position));
String title = urlTitlesList.get(ImagePagerAdapter.this
.getPosition(position));
/*
* if (TextUtils.isEmpty(url)) {
* holder.imageView.setEnabled(false); return; }
*/
Bundle bundle = new Bundle();
bundle.putString(url, url);
bundle.putString(title, title);
Intent intent = new Intent(context, BaseWebActivity.class);
intent.putExtras(bundle);
context.startActivity(intent);
Toast.makeText(context, 點擊了第 + getPosition(position) ,
0).show();
}
});
return view;
}
private static class ViewHolder {
ImageView imageView;
}
/**
* @return the isInfiniteLoop
*/
public boolean isInfiniteLoop() {
return isInfiniteLoop;
}
/**
* @param isInfiniteLoop
* the isInfiniteLoop to set
*/
public ImagePagerAdapter setInfiniteLoop(boolean isInfiniteLoop) {
this.isInfiniteLoop = isInfiniteLoop;
return this;
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return arg0;
}
}
6.點擊進入一個帶進度條的WebView的Activity,載入成功就可以了。
4. android viewpager 怎麼滑動gridview頁面
viewpager 與 gridView可能會有touch沖突,可以在gridview中增加一個onTouch事件,滑動沖突,只需要在子控制項的onTouch中增加
getParent().(true);
表示告訴父控制項,不要處理這個touch事件,即可解決滑動沖突。
5. 如何實現android中橫向滾動的gridView
法1.直接用tablelayout gridview是根據你每行的單元數自動生成的行數;
法2.可以在代碼里根據view數來動態設置列數,比如有10記錄可以設置列數為10/3+1,這樣就有三行四列了。
如果您對我的回答有不滿意的地方,還請您繼續追問;
答題不易,互相理解,互相幫助!
6. android Gridview如何控制滑動速度或滑動距離
寫個程序就可以了,具體如下:
1,定義一個類繼承GridView,如下:
public class SourcePanel extends GridView {
public SourcePanel(Context context) {
super(context);
}
public SourcePanel(Context context, AttributeSet attrs) {
super(context, attrs);
}
public SourcePanel(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
}
注意:構造方法要將GridView中的三種構造全部寫上,否則很可能出現解析xml文件異常的錯誤。
2,在該類中重寫dispatchTouchEvent()方法,如下:
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
if (ev.getAction() == MotionEvent.ACTION_MOVE) {
return true; //禁止GridView滑動
}
return super.dispatchTouchEvent(ev);
}
3,在布局文件(xml)中定義該控制項時寫全包名,如下(屬性跟GridView控制項屬性一樣,按需求自加):
<com.kz.steerwheel.view.SourcePanel
android:id="@+id/sourcePanel"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
7. android一個界面上有兩個gridview如何滑動一個讓另一個也移動滑動
設置父布局為LinearLayout,然後設置2個gridview的weight都為1.0,然後滑動互不影響。
GridView(網格視圖)是按照行列的方式來顯示內容的,一般用於顯示圖片,圖片等內容,比如實現九宮格圖,用GridView是首選,也是最簡單的.
GirdView的一些屬性:
android:numColumns="auto_fit" --------列數設置為自動
android:columnWidth="90dp",----------每列的寬度,也就是Item的寬度
android:stretchMode="columnWidth"------縮放與列寬大小同步
android:verticalSpacing="10dp"----------垂直邊距
android:horizontalSpacing="10dp"-------水平邊距
8. 安卓開發 怎麼設置Girdview的縱向滑動
最簡單的是將gridview放到一個panel中,然後給panel加上 ScrollBars="Vertical" 屬性,便可以實現,但是這樣標題頭會隨著滾動。
從一個網名為小小鳥的人那裡學到如何給gridview 添加縱向滾動條,標題頭不滾動 。首先定義一個樣式表:
<style>
.Freezing
{
position:relative ;
table-layout:fixed;
top:expression(this.offsetParent.scrollTop);
z-index: 10;
}
.Freezing th{text-overflow:ellipsis;overflow:hidden;white-space: nowrap;padding:2px;}
</style>
Freezing 應用在HeaderStyle中,把gridview放置在div中,且將該div設置樣式 style="overflow-y: scroll;「
9. android GridView 點擊 進入圖片左右滑動 求個方法
全屏瀏覽可以用ImageView的setImageResource,全屏的屬性在manifest的activity上設置,
左右滑動使用Gallery拖動效果,創建一個int數組存放圖片的id,繼承Adapyer重寫getView方法,網上有代碼的,我的代碼都被加密了,公司電腦
10. 求教高手,android下如何讓GridView能夠水平滾動,行數固定是三行
gridview外面套一個horizontalscrollview