簡體   English   中英

絕對布局中的ImageView,如何設置ImageView的x,y坐標?

[英]ImageView within an AbsoluteLayout, How to set x, y coordinates of the ImageView?

我想做的是創建一個窮人版的gps地圖。 我已經將“地圖”圖片設置為AbsoluteLayout的背景,然后創建了一個20x20的微型方形圖片,需要將其移動到不同的坐標。 如何在Java代碼中執行此操作?

 <AbsoluteLayout
    android:id="@+id/llMapContainer"
    android:layout_width="match_parent"
    android:layout_height="390dp"
    android:layout_x="0dp"
    android:layout_y="44dp"
    android:background="@drawable/a4000vert"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imgLocation"
        android:layout_width="20px"
        android:layout_height="20px"
        android:layout_x="312px"
        android:layout_y="300px"
        android:src="@drawable/location" />
</AbsoluteLayout>

我的Java文件中有此設置:iv =(ImageView)findViewById(R.id.imgLocation);

但是現在我似乎找不到任何可以設置x和y坐標的方法。

AbsoluteLayout ,並且強烈建議不要使用它。 您應該切換到使用其他形式的ViewGroup ,例如RelativeLayout

一旦你使用RelativeLayout ,你可以使用RelativeLayout.LayoutParams類將它添加到父時指定孩子的大小和位置(以及其它各種參數) RelativeLayout

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(100,200); // The desired size of the child
params.setMargins(50,50); // Position at 50,50
mRelativeLayout.addView( mViewToAdd, params);     

這是在AbsoluteLayout內設置ImageView x和y坐標的方法:

private void setLocation(int x, int y) {
    final ImageView iv = (ImageView) findViewById(R.id.imgLocation);
    final AbsoluteLayout.LayoutParams lp = (AbsoluteLayout.LayoutParams) iv.getLayoutParams();
    lp.x = x;
    lp.y = y;
    iv.setLayoutParams(lp);
}

我同意Trevor的觀點,盡管您可能要避免使用AbsoluteLayout ,因為它已被棄用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM