如图所示,我有一个带有多个 ImageView 的 FrameLayout。
我已经注册了所有这些 Imageviews 的听众。我已经使用 android:layout_gravity、android:paddingLeft 和 android:paddingRight 定位了 ImageViews,因此images are overlapping
.
我的活动课程如下:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ivbglogin = (ImageView) findViewById(R.id.bglogin);
ivlogin = (ImageView) findViewById(R.id.login);
tvlogin = (TextView) findViewById(R.id.tvlogin);
ivbgsignup = (ImageView) findViewById(R.id.bgsignup);
ivsignup = (ImageView) findViewById(R.id.signup);
tvsignup = (TextView) findViewById(R.id.tvsignup);
ivbglogin.setOnClickListener(this);
ivlogin.setOnClickListener(this);
tvlogin.setOnClickListener(this);
ivbgsignup.setOnClickListener(this);
ivsignup.setOnClickListener(this);
tvsignup.setOnClickListener(this);
}
和
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.bglogin:
Toast.makeText(AstralPadActivity.this, "bglogin", Toast.LENGTH_SHORT).show();
break;
case R.id.login:
Toast.makeText(AstralPadActivity.this, "login", Toast.LENGTH_SHORT).show();
break;
case R.id.tvlogin:
Toast.makeText(AstralPadActivity.this, "tvlogin", Toast.LENGTH_SHORT).show();
openLoginDialog();
break;
case R.id.bgsignup:
Toast.makeText(AstralPadActivity.this, "bgsignup", Toast.LENGTH_SHORT).show();
break;
case R.id.signup:
Toast.makeText(AstralPadActivity.this, "signup", Toast.LENGTH_SHORT).show();
break;
case R.id.tvsignup:
Toast.makeText(AstralPadActivity.this, "tvsignup", Toast.LENGTH_SHORT).show();
break;
}
}
框架布局是
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="40"
android:background="@drawable/start_bottombg" >
<ImageView
android:id="@+id/bglogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingRight="194dp"
android:paddingBottom="8dp"
android:paddingTop="8dp"
android:src="@drawable/start_loginbg" />
<ImageView
android:id="@+id/login"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingBottom="15dp"
android:paddingRight="200dp"
android:paddingTop="15dp"
android:src="@drawable/icon_login" />
<TextView
android:id="@+id/tvlogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingRight="120dp"
android:text="Log In"
android:textSize="15dp"
android:textStyle="bold" />
<ImageView
android:id="@+id/bgor"
android:layout_width="25dp"
android:layout_height="25dp"
android:layout_gravity="center"
android:src="@drawable/start_or" />
<ImageView
android:id="@+id/bgsignup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingLeft="190dp"
android:paddingBottom="8dp"
android:paddingTop="8dp"
android:src="@drawable/start_signupbg" />
<ImageView
android:id="@+id/signup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingBottom="15dp"
android:paddingLeft="100dp"
android:paddingTop="15dp"
android:src="@drawable/icon_signup" />
<TextView
android:id="@+id/tvsignup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:paddingLeft="200dp"
android:text="Sign Up"
android:textSize="15dp"
android:textStyle="bold" />
</FrameLayout>
所以当我点击棕色的 ImageView 时,它调用的是绿色的。我想知道如何为这些元素中的每一个注册侦听器,并在单击相应的小部件时调用这些特定的侦听器。
提前致谢。