Динамическое относительное расположение в Android - PullRequest
3 голосов
/ 27 апреля 2011

Я пытаюсь получить два изображения друг у друга.Я могу сделать это нормально работать с файлом XML, но я хотел бы сделать это динамически.ctdeasyone - это прозрачное изображение.

Так что это прекрасно работает ..

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <ImageView 
        android:id="@+id/bck1" 
        android:src="@drawable/fish2"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"        
        android:scaleType="fitXY" 
        android:layout_gravity="center">
    </ImageView>

    <ImageView 
        android:id="@+id/bck2" 
        android:src="@drawable/ctdeasyone"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"        
        android:scaleType="fitXY" 
        android:layout_gravity="center">
    </ImageView>

</RelativeLayout>

Когда я это делаю.появляется только второе изображение (оно прозрачное). Может ли кто-нибудь из экспертов дать совет по этому поводу?Новичок здесь ... Это мой первый вопрос.TIA.

public class TwoPicksOnEachOther extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Grabbing the Application context         
        final Context context = getApplication();                   

        RelativeLayout relativeLayout = new RelativeLayout(this);                   

        final ImageView iv = new ImageView(this);         
        iv.setImageResource(R.drawable.fish2);


        RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(     
                RelativeLayout.LayoutParams.FILL_PARENT, 
                RelativeLayout.LayoutParams.FILL_PARENT);
        relativeLayout.addView(iv,lp);        

        // Creating transparent image
        final ImageView iv2 = new ImageView(this);
        iv.setImageResource(R.drawable.ctdeasytwo);
        RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams(     
                RelativeLayout.LayoutParams.FILL_PARENT, 
                RelativeLayout.LayoutParams.FILL_PARENT);
        relativeLayout.addView(iv2,lp2);
        setContentView(relativeLayout);

    }        

}

Ответы [ 2 ]

3 голосов
/ 27 апреля 2011

Мне пришлось положить его в эмулятор и поиграть с ним некоторое время, пока я его не увидел:

iv.setImageResource(R.drawable.fish2);
(...)
iv.setImageResource(R.drawable.ctdeasytwo);

Вы никогда не устанавливаете ресурс изображения для iv2!

Я изменил это, и теперь я вижу два изображения, как и ожидалось.

0 голосов
/ 27 апреля 2011

Это идеально подходит для FrameLayout .Поскольку вы хотите, чтобы изображения находились друг над другом.

...