android偏移量
1. 基於google map開發android軟體,坐標偏移問題
我做過googlemap,後來也是應該偏移量的問題沒有得到解決(偏移量每天都在變動,如果不不知道google偏移量的演算法,好像不容易解決),導致定位的誤差相當大,後來使用了網路的地圖,很好用,而且API也很詳細,可以考慮網路版移動地圖。
2. android開發中偏移量什麼意思
舉個栗子
viewpager 頁面滑動 頁面從全部到顯示偏移量變化為0-1
3. android怎麼設置彈出框的大小
可以設置spinner 彈出的位置偏移量,只設置偏移,不能設置在某個地方彈出,如果需要指定在某個地方,建議使用popupwindow
4. android手勢中有兩個偏移量值,請問有什麼作用的這兩個值是怎樣計算出來的
從按下的那個點,到當前的這個點,偏移量
5. Android中TextView 的baseline如何進行設置
Android線性布局中的屬性主要的就是控制浮動方向的orientation,其他的就是輔助浮動顯示的,其中有一個屬性控制基線,也就是baselineAligned,讓我有點迷惑,下邊通過例子講解下這個屬性的使用。
1.首先這個基線主要是對可以顯示文字的View,如TextView,Button等控制項的
2.這個baseline指的是這個UI控制項的baseline--文字距UI控制項頂部的偏移量
3.LinearLayout控制項默認有屬性android:baselineAligned為true,如果LinearLayout的orientation為horizontal的話,其中的文字默認是文字對齊的
6. 怎麼解決scrollview頁面push後自動恢復原來的偏移量
怎麼解決scrollview頁面push後自動恢復原來的偏移量
scrollView.scrollTo(0,0); Activity里初始化後添加該代碼讓滾動條滑動到頂部 下面的解決方式可能會更好: 進入頁面後,顯示位置下移,主要是因為焦點問題. 所以在它的上一層布局 加 android:focusableInTouchMode="true" 就能解決你所遇到的問題 ...
如果根據scrollview1的delegate方法設置scrollview2的contentoffset。設置scorllview2的contentoffset時候會調用scrollview2的delegate方法,而scrollview1又要根據scrollview2同步。所以scrollview2的delegate方法又要根據scrollview2的contentoffset設置scrollview1的contentoffset。如此造成了無限循環。我是用了一個「假同步」,首先我在每個scorllview上放了一個uiview,大小是scrollview的contentsize。然後把scrollview的內容放在了那個uiview上。移動其中一個scrollview時,調整另外的scrollview上的uiview的frame即可。
7. android手勢如何平移控制項
解決方案1:
重寫該控制項的onTouch方法,move狀態設置該view的margin或者在放手狀態up中設置不需要手勢監聽吧,在該方法中判斷,是down狀態記錄按下的位置,控制項移動一般都是相對布局
解決方案2:
ontounchListener監聽事件
解決方案3:
scroller調用scrollTo
知識點延伸閱讀:
控制項平移劃過屏幕(Scroller簡單使用)
MainActivity如下:
package cc.cn;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.app.Activity;
/
Demo描述:
Scroller使用示例——讓控制項平移劃過屏幕
注意事項:
1 在布局中將cc.cn.LinearLayoutSubClass的控制項的寬度設置為"fill_parent"
便於觀察滑動的效果
/
public class MainActivity extends Activity {
private Button mButton;
private LinearLayoutSubClass mLinearLayoutSubClass;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init(){
mLinearLayoutSubClass=(LinearLayoutSubClass) findViewById(R.id.linearLayoutSubClass);
mButton=(Button) findViewById(R.id.button);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
mLinearLayoutSubClass.beginScroll();
}
});
}
}
LinearLayoutSubClass如下:
package cc.cn;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.LinearLayout;
import android.widget.Scroller;
/**
* API注釋:
*
* 1 //第一,二個參數起始位置;第三,四個滾動的偏移量;第五個參數持續時間
* startScroll(int startX, int startY, int dx, int dy, int ration)
*
* 2 //在startScroll()方法執行過程中即在ration時間內computeScrollOffset()
* 方法會一直返回true,但當動畫執行完成後會返回返加false.
* computeScrollOffset()
*
* 3 當執行ontouch()或invalidate()或postInvalidate()均會調用該方法
* computeScroll()
*
*/
public class LinearLayoutSubClass extends LinearLayout {
private Scroller mScroller;
private boolean flag=true;
public LinearLayoutSubClass(Context context) {
super(context);
}
public LinearLayoutSubClass(Context context, AttributeSet attrs) {
super(context, attrs);
//也可採用該構造方法傳入一個interpolator
//mScroller=new Scroller(context, interpolator);
mScroller=new Scroller(context);
}
@Override
public void computeScroll() {
super.computeScroll();
if(mScroller.computeScrollOffset()){
scrollTo(mScroller.getCurrX(), 0);
//使其再次調用computeScroll()直至滑動結束,即不滿足if條件
postInvalidate();
}
}
public void beginScroll(){
if (flag) {
mScroller.startScroll(0, 0, -2500, 0, 2500);
flag = false;
} else {
mScroller.startScroll(0, 0, 0, 0, 1500);
flag = true;
}
//調用invalidate();使其調用computeScroll()
invalidate();
}
}
8. android 文字怎麼加陰影效果 怎麼無效
Android:shadowColor 陰影顏色
android:shadowDx 陰影的水平偏移量
android:shadowDy 陰影的垂直偏移量
android:shadowRadius 陰影的范圍
為了統一風格和代碼的復用,通常可以把這個樣式抽取放入到style.xml文件中
<TextView
style="@style/textstyle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="字體樣式"
android:textSize="30sp"
android:textStyle="bold" />
樣式實現:
<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<stylename="textstyle">
<itemname="android:shadowColor">#ff0000ff</item>
<itemname="android:shadowRadius">10</item>
<itemname="android:shadowDx">5</item>
<itemname="android:shadowDy">5</item>
</style>
</resources>
關於android文字陰影,共有四個屬性可以設置:
android:shadowColor :陰影顏色
android:shadowDx :陰影x方向位移
android:shadowDy :陰影y方向位移
android:shadowRadius :陰影的半徑
注意:陰影的半徑必須設,為0時沒有效果。
下面為改變x位移:
android:shadowColor="#ff000000" (前兩位為透明度)
android:shadowDx="2"
android:shadowDy="0"
android:shadowRadius="1"
效果(向右為正):
下面為改變y位移:
android:textColor="#979790"
android:shadowColor="#ff000000"
android:shadowDx="0"
android:shadowDy="2"
android:shadowRadius="1"
效果(向下為正):
下面改變半徑:
android:shadowDx="1"
android:shadowDy="1"
android:shadowRadius="1"
9. android程序ScrollView里有TextView,知道指定的字元在Text中的偏移量,如何直接跳轉到該位置
int[] location = new int[2];
TextView.getLocationOnScreen(location);
int x = location[0];
int y = location[1];
獲取控制項的位置 在加上字元在TextView中的偏移量就是字元的坐標了
10. android translateanimation 參數怎麼計算出來的
fromXDelta:即控制項在X軸上移動之前的差值,為什麼是Delta呢?因為在此之前,該控制項可能已經發生過了位移,因此它已經偏離了控制項最初始的位置。因此採用了距離最初始位置的偏移量。而這個初始位置是是在調用這個方法之前定義的,比如:
Matrix matrix = new Matrix();
matrix.postTranslate(0, 0);
這里用postTranslate方法定義初始位置為(0,0),初始位置設定之後一直是這個值,不會改變。
toXDelta:相同道理,想要移動的終點位置距離最初始位置的偏移量。記住,一定不要把這個最初始位置當成是移動開始前控制項的位置,否則將會發生錯誤移動。
後面兩個參數表示Y方向上的,和X方向上的同理。需要說明的是,這個是絕對偏移量,是以像素為單位進行計算的。