下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
【移動應(yīng)用開發(fā)技術(shù)】Android中怎么實(shí)現(xiàn)view隨觸碰滑動效果
Android中怎么實(shí)現(xiàn)view隨觸碰滑動效果,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。布局文件里面就是一個Relativelayout中有一個ImageView。如下<?xml
version="1.0"
encoding="utf-8"?>
<RelativeLayout
xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:id="@+id/relativeLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.xingyi.moveviewwithtouch.MainActivity">
<ImageView
android:id="@+id/imageView"
android:layout_width="40dp"
android:layout_height="40dp"
android:background="@android:color/black"/>
</RelativeLayout>Java代碼如下,這里考慮了邊緣位置滑動的效果。如果考慮,在最左邊緣imageView會有一半在屏幕之外,在最右邊緣會縮小,直到看不見。package
com.xingyi.moveviewwithtouch;
import
android.os.Bundle;
import
android.support.v7.app.AppCompatActivity;
import
android.view.MotionEvent;
import
android.view.View;
import
android.widget.ImageView;
import
android.widget.RelativeLayout;
public
class
MainActivity
extends
AppCompatActivity
{
ImageView
imageView;
RelativeLayout
relativeLayout;
int
heightRL,widthRL;
int
halfHeight,halfWidth;
boolean
first=true;
private
int
widthImg;
private
int
heightImg;
@Override
protected
void
onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
//初始化視圖
private
void
initView()
{
imageView
=
(ImageView)
findViewById(R.id.imageView);
relativeLayout
=
(RelativeLayout)
findViewById(R.id.relativeLayout);
//獲取滑動瞬間位置和點(diǎn)擊瞬間位置,并移動imageview
relativeLayout.setOnTouchListener(new
View.OnTouchListener()
{
@Override
public
boolean
onTouch(View
view,
MotionEvent
motionEvent)
{
switch
(motionEvent.getAction())
{
case
MotionEvent.ACTION_MOVE:
moveView(imageView,
motionEvent.getX(),
motionEvent.getY());
break;
case
MotionEvent.ACTION_DOWN:
getWidthAndHeight();
moveView(imageView,
motionEvent.getX(),
motionEvent.getY());
break;
default:
break;
}
return
true;
}
});
}
//因?yàn)椴荒茉诔跏蓟晥D時獲得長寬,而每次計(jì)算一次長寬又影響性能
private
void
getWidthAndHeight(){
if(first){
widthRL=relativeLayout.getWidth();
heightRL=relativeLayout.getHeight();
widthImg=imageView.getWidth();
heightImg=imageView.getHeight();
halfWidth
=
imageView.getWidth()
/
2;//imageView寬度的一半
halfHeight
=
imageView.getHeight()
/
2;//imageView高度的一半
first=false;
}
}
//滑動瞬間,將x和y分別作imageView的中心點(diǎn)到relativeLayout最左和頂端距離
private
void
moveView(View
view,
float
x,
float
y)
{
RelativeLayout.LayoutParams
params
=
(RelativeLayout.LayoutParams)
view.getLayoutParams();
//設(shè)置水平位置
if
(x
<
halfWidth)
{//左邊緣
params.leftMargin
=
0;//設(shè)置imageview到左端距離為0
}
else
if
(x
>
widthRL-
halfWidth)
{
params.leftMargin
=
widthRL-widthImg;//設(shè)置imageview左端到左端端距離(params.rightMargin的性能非常糟糕)
}
else
{
params.leftMargin
=
(int)
(x
-
halfWidth);//imageview左端到relativelayout左端距離
}
//設(shè)置豎直位置
if
(y
<
halfHeight)
{
params.topMargin
=
0;
}
else
if
(y
>
heightRL
-
halfHeight)
{
params.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋交易終止合同范本
- 農(nóng)村土地出售合同書樣本
- 停車場租賃合同協(xié)議書范文
- 2024養(yǎng)殖場土地承包合同
- 股票投資代持協(xié)議書
- 2024年彩鋼瓦安裝合同書
- 2024產(chǎn)權(quán)轉(zhuǎn)讓居間合同協(xié)議書
- 工程機(jī)械運(yùn)輸合同模板
- 個人之間專利權(quán)轉(zhuǎn)讓協(xié)議范本
- 2024年按揭房屋歸女方離婚協(xié)議書
- 2024全球量子產(chǎn)業(yè)發(fā)展報(bào)告
- 場地移交安全管理協(xié)議書
- 醫(yī)院卒中中心建設(shè)各種制度、流程匯編
- 重慶市江北區(qū)2023-2024學(xué)年六年級下學(xué)期期末考試數(shù)學(xué)試題
- 軍隊(duì)文職聘用合同管理規(guī)定
- 2024年貴州省安順市西秀區(qū)小升初語文試卷
- 2024-2029年中國兒童牙冠行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報(bào)告
- 新時代鐵路發(fā)展面對面全文內(nèi)容
- 人工智能與語文閱讀理解教學(xué)
- 科學(xué)素養(yǎng)培育及提升-知到答案、智慧樹答案
- 快遞主管崗位職責(zé)
評論
0/150
提交評論