Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将“单击”设置为单个布局中的两个不同三角形图像_Android_Layout - Fatal编程技术网

Android 将“单击”设置为单个布局中的两个不同三角形图像

Android 将“单击”设置为单个布局中的两个不同三角形图像,android,layout,Android,Layout,我尝试将单击设置为如图所示放置的三角形图像,但问题是只有一次图像单击有效。我已实施以下措施: imageview的特点是它需要一个矩形空间。因此,在您的情况下,一个imageview放置在另一个imageview之上,因此只单击一个imageview。要实现这一点,您需要创建自定义类来实现三角形imageview,请单击“尝试”或“查找自定义…”imageview需要一个矩形空间。因此,在您的情况下,一个imageview放置在另一个imageview之上,因此只单击一个imageview。要实

我尝试将单击设置为如图所示放置的三角形图像,但问题是只有一次图像单击有效。我已实施以下措施:


imageview的特点是它需要一个矩形空间。因此,在您的情况下,一个imageview放置在另一个imageview之上,因此只单击一个imageview。要实现这一点,您需要创建自定义类来实现三角形imageview,请单击“尝试”或“查找自定义…”

imageview需要一个矩形空间。因此,在您的情况下,一个imageview放置在另一个imageview之上,因此只单击一个imageview。要实现这一点,您需要创建自定义类来实现三角形imageview,请单击“尝试”或“查找自定义…”。

您可以将它们包装到FrameLayout中

可以将它们包装到框架布局中


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

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

activity_main.xml

MainActivity.java

您可以查看下面的屏幕截图以查看特定的图像单击

截图


我希望它能帮助您。

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

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

activity_main.xml

MainActivity.java

您可以查看下面的屏幕截图以查看特定的图像单击

截图


我希望它能对您有所帮助。

什么是二和四,您是如何初始化它们的?我已按如下方式初始化它们ImageView二=ImageView findViewByIdR.id.twoWheeler;ImageView四=ImageView findViewByIdR.id.Fourwheeler什么是二和四,您是如何初始化它们的?我已按如下方式初始化它们ImageView二=ImageView findViewByIdR.id.twoWheeler;和ImageView four=ImageView findViewByIdR.id.FOURWHEELER您可以告诉图像大小应该是多少您可以使用任何图像大小,但两个图像的大小应该相同。例如,我拍摄了两张600x600@Piyush Malaviya的图像,我知道了谢谢你告诉我图像大小你可以使用任何图像大小,但两张图像的大小应该相同。例如,我拍摄了两张600x600@Piyush Malaviya的照片,我收到了,谢谢
 <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);
    }
});
framelayout.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        //calculate the position by event.getX(),event.getY();
        if(point in triOne){

        }else{

        }
        return true;
    }
});
<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>
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;
        }

    }
}