我该如何触摸毕加索加载的图像进行手指画

问题描述 投票:-2回答:1

我正在创建一个从网址中提取图片并将其放入recyclerview的应用程序。然后,用户可以访问这些图像并全屏查看。这是通过毕加索实现的。现在,我希望能够使用onTouchEvent或其他方式对用毕加索加载的图像进行手指绘制,但不确定如何执行。

此类将图像设置为已加载毕加索的map_edit_gallery.xml:

    public class EditMapImage extends AppCompatActivity {

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.map_edit_gallery);

        checkIntent();


        //Find savebutton
        ImageButton saveMapButton = findViewById(R.id.saveEditImagebutton);

        saveMapButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                Toast.makeText(getApplicationContext(),"Saved",Toast.LENGTH_SHORT).show();
            }
        });

    }

    //This will check to see if the intent extras exist and if they do get the extra
    private void checkIntent(){
        if(getIntent().hasExtra("image_url") && getIntent().hasExtra("name_url")){

            String imageUrl = getIntent().getStringExtra("image_url");
            String nameUrl = getIntent().getStringExtra("name_url");

            setMapImage(imageUrl, nameUrl);
        }
    }

    private void setMapImage(String imageUrl, String nameUrl){

        //Set the Text view
        TextView name  = findViewById(R.id.mapNameEditor);
        name.setText(nameUrl);

        //Set the Image
        ImageView imageView = findViewById(R.id.mapEditScreen);

        Picasso.get().load(imageUrl).into(imageView);

        Picasso picasso = Picasso.get();
        DrawToImage myTransformation = new DrawToImage();
        picasso.load(imageUrl).transform(myTransformation).into(imageView);

    }
}

此类允许我使用画布绘制加载的图像,但无法弄清楚如何使用触摸来绘制:

public class DrawToImage implements Transformation {


    @Override
    public String key() {
        // TODO Auto-generated method stub
        return "drawline";
    }

    @Override
    public Bitmap transform(Bitmap bitmap) {
        // TODO Auto-generated method stub
        synchronized (DrawToImage.class) {
            if(bitmap == null) {
                return null;
            }
            Bitmap resultBitmap = bitmap.copy(bitmap.getConfig(), true);

            bitmap.recycle();
            return resultBitmap;
        }
    }


}
java android android-recyclerview picasso android-paint
1个回答
0
投票

[尝试使用用户选择的图像将其设置在画布对象中,然后在画布对象本身上进行绘制,而不是图像。有很多教程可以帮助您如何在画布上绘画。此过程未与Picasso图像库建立任何联系,因此我建议您首先通过Picasso获取图像,然后将图像发送到自定义画布实现中,然后返回可以在编辑后设置为Picasso的位图/可绘制对象。关于如何从画布中导出图像以在需要时获取编辑后的图像,还有很多教程。

我希望这对您有所帮助,Panos。

© www.soinside.com 2019 - 2024. All rights reserved.