2015-05-27 2 views
0
public void onClick(View v) { 
    ImageView image = (ImageView) inflate.inflate(R.layout.ani_image_view, null); 
    mAllImageViews.add(image);  
    image.setX(10); 
    image.setY(100); 
} 

Стараются позиция нового ImageView в координатах 10100. Я также попытался расположить ImageView 2000,100, но ImageView продолжает отображаться в одном и том же месте в любом случае.Что такое смещение для точек на дюйм и всплывают значения в Setx, методы сетов? [Android]

Я подозреваю, что он имеет отношение к плотности пикселей. Какова связь между значениями float пикселей и dpi?

ответ

1

Независимо от того, какие у вас проблемы, они не связаны с setX() или setY() и плотность пикселей. В любом случае setX() и setY() ожидайте количество пикселей. Если вы посмотрите на исходный код setX() и setY() вы видите это:

/** 
* Sets the visual x position of this view, in pixels. This is equivalent to setting the 
* {@link #setTranslationX(float) translationX} property to be the difference between 
* the x value passed in and the current {@link #getLeft() left} property. 
* 
* @param x The visual x position of this view, in pixels. 
*/ 
public void setX(float x) { 
    setTranslationX(x - mLeft); 
} 

/** 
* Sets the visual y position of this view, in pixels. This is equivalent to setting the 
* {@link #setTranslationY(float) translationY} property to be the difference between 
* the y value passed in and the current {@link #getTop() top} property. 
* 
* @param y The visual y position of this view, in pixels. 
*/ 
public void setY(float y) { 
    setTranslationY(y - mTop); 
} 

Другими словами, они в основном просто называют setTranslationX() и setTranslationY(). Если ваш View не затронут вызовами setX() и setY(), я бы сначала искал другие причины. Например, вы, возможно, пытаетесь позвонить setX() и setY() с неправильным номером View или еще часть вашего кода позже может перезаписать ваши изменения. Я не могу дать вам более подробный ответ, чем с предоставленной вами информацией.

Смежные вопросы