【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android怎么實(shí)現(xiàn)自定義View仿探探卡片滑動(dòng)效果_第1頁(yè)
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android怎么實(shí)現(xiàn)自定義View仿探探卡片滑動(dòng)效果_第2頁(yè)
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android怎么實(shí)現(xiàn)自定義View仿探探卡片滑動(dòng)效果_第3頁(yè)
【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android怎么實(shí)現(xiàn)自定義View仿探探卡片滑動(dòng)效果_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

【移動(dòng)應(yīng)用開(kāi)發(fā)技術(shù)】Android怎么實(shí)現(xiàn)自定義View仿探探卡片滑動(dòng)效果

這篇文章主要講解了“Android怎么實(shí)現(xiàn)自定義View仿探探卡片滑動(dòng)效果”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著在下的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“Android怎么實(shí)現(xiàn)自定義View仿探探卡片滑動(dòng)效果”吧!Android自定義View仿探探卡片滑動(dòng)這種效果網(wǎng)上有很多人已經(jīng)講解了實(shí)現(xiàn)思路,大多都用的是RecyclerView來(lái)實(shí)現(xiàn)的,但是我們今天來(lái)?yè)Q一種實(shí)現(xiàn)思路,只用一個(gè)自定義的ViewGroup來(lái)搞定這個(gè)實(shí)現(xiàn)。下面我們先看一下實(shí)現(xiàn)的效果:

這個(gè)自定義View用法也很簡(jiǎn)單,首先從github上下載或者fork這個(gè)項(xiàng)目,在布局中添加:<com.liyafeng.view.swipecard.SwipeCardLayout

android:id="@+id/scl_layout"

android:layout_width="match_parent"

android:layout_height="match_parent"/>是的,沒(méi)有一點(diǎn)廢話,自定義屬性可以根據(jù)自己的需求來(lái)添加。下面是代碼中初始化:public

class

SwipeCardActivity

extends

Activity

{

@Override

protected

void

onCreate(Bundle

savedInstanceState)

{

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_swipe_card);

SwipeCardLayout

scl_layout=(SwipeCardLayout)findViewById(R.id.scl_layout);

Queue<CardEntity>

data

=

new

LinkedList<>();

CardEntity

cardEntity1

=

new

CardEntity(R.drawable.f1,

"這里是美麗的湖畔");

CardEntity

cardEntity2

=

new

CardEntity(R.drawable.f2,

"這里游泳比較好");

CardEntity

cardEntity3

=

new

CardEntity(R.drawable.f3,

"向往的藍(lán)天白云");

CardEntity

cardEntity4

=

new

CardEntity(R.drawable.f4,

"繁華的都市");

CardEntity

cardEntity5

=

new

CardEntity(R.drawable.f5,

"草原象征著理想");

data.add(cardEntity1);

data.add(cardEntity2);

data.add(cardEntity3);

data.add(cardEntity4);

data.add(cardEntity5);

scl_layout.setAdapter(new

SwipeCardLayout.CardAdapter<CardEntity>(data)

{

@Override

public

View

bindLayout()

{

return

LayoutInflater.from(SwipeCardActivity.this).inflate(R.layout.card_layout,null);

}

@Override

public

void

bindData(CardEntity

data,

View

convertView)

{

ImageView

iv_card

=

(ImageView)convertView.findViewById(R.id.iv_card);

TextView

tv_card

=

(TextView)

convertView.findViewById(R.id.tv_card);

iv_card.setImageResource(data.resId);

tv_card.setText(data.content);

}

});

scl_layout.setOnSwipeListener(new

SwipeCardLayout.OnSwipeListener()

{

@Override

public

void

onSwipe(int

type)

{

switch

(type)

{

case

SwipeCardLayout.TYPE_RIGHT:

Toast.makeText(SwipeCardActivity.this,

"right",

Toast.LENGTH_SHORT).show();

break;

case

SwipeCardLayout.TYPE_LEFT:

Toast.makeText(SwipeCardActivity.this,

"left",

Toast.LENGTH_SHORT).show();

break;

}

}

});

}

class

CardEntity

{

public

CardEntity(int

resId,

String

content)

{

this.resId

=

resId;

this.content

=

content;

}

public

int

resId;

public

String

content;

}

}這里必須要用一個(gè)隊(duì)列來(lái)添加數(shù)據(jù),顯示的順序就是隊(duì)列的順序。完整的代碼已經(jīng)上傳github接下來(lái)簡(jiǎn)單說(shuō)一下實(shí)現(xiàn)原理,我們用兩個(gè)自定義的ViewGroup來(lái)定義兩個(gè)Card,一個(gè)在上,一個(gè)在下,且重寫它的onTouchEvent()方法,來(lái)實(shí)現(xiàn)跟隨手指來(lái)滑動(dòng)。當(dāng)我們松開(kāi)手指的時(shí)候,如果Card移動(dòng)的距離短,那么就執(zhí)行動(dòng)畫將Card重置到原來(lái)位置,如果移動(dòng)的距離比較遠(yuǎn),我

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論