gpt4 book ai didi

android - 将单击设置为单个布局中的两个不同的三角形图像

转载 作者:行者123 更新时间:2023-11-29 15:38:11 26 4
gpt4 key购买 nike

我尝试将点击设置为如图所示放置的三角形图像。但问题是只有一个图像点击有效。我已经实现如下:

enter image description here

 <ImageView 
android:id="@+id/twoWheeler" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/front_screen_design_twowheeler"
android:scaleType="fitStart"/>


<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/fourWheeler"
android:src="@drawable/front_screen_design_fourwheeler"
android:scaleType="fitEnd" />



two.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(MainActivity.this,BikeActivity.class);
startActivity(i);
}
});
four.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i=new Intent(MainActivity.this,FourActivity.class);
startActivity(i);
}
});

最佳答案

正如您在问题中提到的,我已经为您的解决方案创建了相同的示例。

我使用了两个半透明区域的图像。

activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rlParent"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageView
android:id="@+id/imageView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/triangle" />

<ImageView
android:id="@+id/imageView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/triangle2" />

</RelativeLayout>

MainActivity.java

import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

private ImageView imageView, imageView1;
private RelativeLayout rlParent;


private void showToast(String message) {
Toast.makeText(this, message, Toast.LENGTH_SHORT).show();
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

rlParent = (RelativeLayout) findViewById(R.id.rlParent);
imageView = (ImageView) findViewById(R.id.imageView);
imageView1 = (ImageView) findViewById(R.id.imageView1);

rlParent.setOnTouchListener(new MyTouchListener(rlParent, this));
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.imageView:
showToast("Image 1 Click");
break;
case R.id.imageView1:
showToast("Image 2 Click");
break;
}
}

private class MyTouchListener implements View.OnTouchListener {

private ViewGroup viewGroup;
private View.OnClickListener onClickListener;

public MyTouchListener(ViewGroup viewGroup, View.OnClickListener onClickListener) {
this.viewGroup = viewGroup;
this.onClickListener = onClickListener;
}

@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_UP:
for (int pos = 0; pos < viewGroup.getChildCount(); pos++) {
View view = viewGroup.getChildAt(pos);
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
int x = (int) event.getX();
int y = (int) event.getY();

if (bitmap.getPixel(x, y) != Color.TRANSPARENT) {
if (onClickListener != null) {
onClickListener.onClick(view);
break;
}
}
}
break;
}
return true;
}

}
}

您可以查看下面的屏幕截图以检查特定图片的点击情况,

截图

希望对你有帮助。

关于android - 将单击设置为单个布局中的两个不同的三角形图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45974019/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com