/ / Не може да се постави ImageView в горния ъгъл по време на изпълнение - Android, Android Layout

ImageView не може да се постави в горния ъгъл по време на изпълнение - Android, Android и Layout

Искам да поставите ImageView в горния ляв ъгъл, когато работи по време на изпълнение, но това не работи. Това е моето оформление и код:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent"
android:id="@+id/layout_main"
android:layout_height="fill_parent" tools:context=".Main">
</RelativeLayout>

Това е код:

RelativeLayout layout = (RelativeLayout)findViewById(R.id.layout_main);
ImageView imageView =new ImageView(getApplicationContext());
imageView.setImageResource(R.drawable.green_apple);
imageView.setScaleX(0.3f);
imageView.setScaleY(0.3f);
imageView.setLeft(0);
imageView.setTop(0);
layout.addView(imageView);

Аз също се опитах:

RelativeLayout layout = (RelativeLayout)findViewById(R.id.layout_main);
ImageView imageView =new ImageView(getApplicationContext());
imageView.setImageResource(R.drawable.green_apple);
imageView.setScaleX(0.3f);
imageView.setScaleY(0.3f);
imageView.setX(0);
imageView.setY(0);
layout.addView(imageView);

И:

RelativeLayout layout = (RelativeLayout)findViewById(R.id.layout_main);
ImageView imageView =new ImageView(getApplicationContext());
imageView.setImageResource(R.drawable.green_apple);
imageView.setScaleX(0.3f);
imageView.setScaleY(0.3f);
layout.addView(imageView);
set = new AnimatorSet();
ObjectAnimator aniX = ObjectAnimator.ofFloat(imageView, "x", 0);
aniX.setDuration(100);
ObjectAnimator aniY = ObjectAnimator.ofFloat(imageView, "y", 0);
aniY.setDuration(100);
set.playTogether(aniX, aniY);
set.start()

Но същият резултат, това е моят резултат:въведете описанието на изображението тук

Винаги разполагайте с голямо пространство към горния и левия екран,Въпреки че зададох 0,0. Аз също се опитам да зададете височина и ширина на екрана, той летят извън екрана. Не знам защо. Благодаря ви много, че някой може да ви обясни и как да ми помогнете да го оправя

Отговори:

1 за отговор № 1

Това е така, защото използвате setScaleX и setScaleY, така че опитайте кода по-долу:

    final ImageView iv = new ImageView(context);
iv.setImageResource(R.drawable.green_apple);
rl.addView(iv);
iv.getViewTreeObserver().addOnPreDrawListener(new OnPreDrawListener() {

@Override
public boolean onPreDraw() {
iv.getViewTreeObserver().removeOnPreDrawListener(this);
int w = (int) (iv.getWidth() * 0.3);
int h = (int) (iv.getHeight() * 0.3);
RelativeLayout.LayoutParams rlp = new RelativeLayout.LayoutParams(w, h);
iv.setLayoutParams(rlp);
return true;
}
});