【安卓筆記】view.getX和view.getTranslationX區別
1.view.getTranslationX計算的是該view的偏移量。初始值為0,向左偏移值為負,向右偏移值為正。
2.view.getX相當於該view距離父容器左邊緣的距離,等於getLeft+getTranslationX。
示意圖:
舉例:
佈局檔案:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.animdemo2.MainActivity" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="110px"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_marginLeft="70px"<--ImageView距其父容器左邊距離為70px--/>
android:src="@drawable/ic_launcher" />
</LinearLayout>
</RelativeLayout>
介面程式碼:
package com.example.animdemo2;
import android.animation.ObjectAnimator;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
public class MainActivity extends Activity implements OnClickListener
{
private static final String TAG = "MainActivity";
private ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv);
iv.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
Log.d(TAG,"translationX:"+iv.getTranslationX()+",x:"+iv.getX());
ObjectAnimator.ofFloat(iv,"translationX",-30f).setDuration(1000).start();
}
}
點選機器人兩次,檢視日誌:可以發現第一次的translationX是0,而getX的值是70.第二次因為發生了偏移,向左偏移了30px,所以translationX是-30px,而getX的值為70-30=40px。這跟其父容器linearLayout的margin無關!
相關文章
- this和super的區別和應用 學習筆記筆記
- 找工作學習筆記1------=和==、&和&&、|和||的區別筆記
- 安卓中gravity和layout_gravity的區別安卓
- go語言學習筆記(一):*和&的區別Go筆記
- 【安卓筆記】Widget安卓筆記
- 【學習筆記】make 和 new 關鍵字的區別筆記
- 關於Vue和React區別的一些筆記VueReact筆記
- 筆記本和微軟平板電腦的實際區別筆記微軟
- websocket以及http的區別筆記WebHTTP筆記
- 鴻蒙系統和安卓的區別 鴻蒙系統是基於安卓嗎鴻蒙安卓
- git checkout 和 git reset 的區別 —— Git 學習筆記 09Git筆記
- CSS選擇器筆記,element element和element > element 的區別CSS筆記
- 【安卓筆記】ormlite入門安卓筆記ORM
- require 和 include 區別小記UI
- 【安卓筆記】RecyclerView+SwipeRefreshLayout示例安卓筆記View
- 【安卓筆記】gradle入門安卓筆記Gradle
- JavaScript 05筆記(null、undefined、NaN的區別)JavaScript筆記NullUndefinedNaN
- symfony學習筆記2—純的PHP程式碼和symfony的區別筆記PHP
- iOS學習筆記2(結合專案)--Category和Extension的區別iOS筆記Go
- 安卓開發筆記——數獨遊戲安卓筆記遊戲
- 安卓學習筆記之Activity(一)安卓筆記
- 【安卓筆記】CardView+RecyclerView使用示例安卓筆記View
- 【安卓筆記】崩潰日誌收集安卓筆記
- LTE-5G學習筆記5---Normal CP和Extended CP的區別筆記ORM
- 《從零開始學Swift》學習筆記(Day 55)——使用try?和try!區別Swift筆記
- Android筆記:invalidate()和postInvalidate() 的區別及使用——重新整理uiAndroid筆記UI
- 安卓學習筆記20:Fragment入門安卓筆記Fragment
- 安卓初學基礎學習筆記安卓筆記
- 和區別
- miniconda和anaconda區別-雜記
- 筆記本記憶體低壓和標壓的區別 DDR3和DDR3L哪個好?筆記記憶體
- Angular Universal 學習筆記 - 客戶端渲染和伺服器端渲染的區別Angular筆記客戶端伺服器
- C#學習筆記——Show()與ShowDialog()的區別C#筆記
- 正向代理與反向代理的區別【Nginx讀書筆記】Nginx筆記
- ../和./和/的區別
- 安卓觸控事件與單擊事件的區別安卓事件
- 【安卓筆記】使用DialogFragment託管dialog安卓筆記Fragment
- Java雜記10—BIO,BIO和NIO的區別Java