Android 在这张图片之上画一张图片(动态)

Posted

技术标签:

【中文标题】Android 在这张图片之上画一张图片(动态)【英文标题】:Android draw a picture on top of this picture (dynamicaly) 【发布时间】:2012-07-25 16:27:05 【问题描述】:

我有带有 ImageView 的 RelativeLayout。

我想点击图片并在顶部添加相同的图片。它必须是动态的,不调用 onCreate 方法。是红色圆圈(透明 10% - *.png)

像这样:

如何最好地做到这一点?

【问题讨论】:

如果您想要在触摸屏幕时使用它。将其添加到 onTouchEvent()。您可以使用许多事件。 【参考方案1】:

每次只增加原图的alpha值。

Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.my_picture);       
Paint paint = new Paint();
paint.setAlpha(CURRENT_VALUE);
canvas.drawBitmap(botmap, 0, 0, paint);

或直接使用 ImageView

ImageView myImageView = new ImageView(this);
myImageView.setAlpha(xxx);

【讨论】:

增加 100% 可见度图像的 alpha 值?我不知道该怎么做,你能告诉我吗?【参考方案2】:

您需要执行多少次?根据您的需要,有几种方法。首先,如果您只需要执行一次。将图像放在布局中的第一个图像之上,但将其可见性设置为不可见。然后,当您单击图像时,将可见性更改为可见。

如果您需要重复执行此操作,第二种方法是将图像视图放置在单独的布局中,在第一个图像的主要布局中使用,然后在代码中使用 layoutinflater 加载图像视图。

在您提供其他信息之后,我将评论移至此处: 只需增加图像的 alpha 值即可。

【讨论】:

我最多需要这样做 100 次。圆圈将有 1% 的可见度。每次点击添加叠加图像并将每个百分比添加到图像的可见性。 那为什么要多次加载呢?相反,您应该只修改图像的 alpha 以在每次单击时增加它。 使图像完全可见。然后在最初加载时,将 alpha 设置为 1% 或大约 2,因为 alpha 从 0 到 255,然后每次单击将 alpha 增加 2 或 3,直到达到 255。【参考方案3】:
public class Test extends Activity 


RelativeLayout relativeLayout;

 ImageView imageView1;


@Override
protected void onCreate(Bundle savedInstanceState) 
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

    setContentView(R.layout.text);

    relativeLayout=(RelativeLayout)findViewById(R.id.relativeLayout);



    imageView=(ImageView)findViewById(R.id.imageView);

    imageView.setOnClickListener(new OnClickListener() 

        @Override
        public void onClick(View v) 
            // TODO Auto-generated method stub

            imageView1=new ImageView(Test.this);

            imageView1.setLayoutParams(imageView.getLayoutParams());



            //imageView1=imageView;

            imageView.setOnClickListener(new OnClickListener() 

                @Override
                public void onClick(View v) 
                    // TODO Auto-generated method stub



                
            );

            imageView1.setBackgroundResource(R.drawable.arrow1);
            relativeLayout.addView(imageView1);
            Toast.makeText(Test.this, "NEW IMAGE", 1).show();
            Toast.makeText(Test.this, "OLD IMAGE", 1).show();

            imageView.setVisibility(View.GONE);

            imageView=null;


        
     
    );

XML 布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/relativeLayout"
    android:layout_
    android:layout_ >

    <ImageView
        android:id="@+id/imageView"
        android:layout_
        android:layout_
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:background="@drawable/aboutus_h" />

</RelativeLayout>

这将帮助您完成工作。

【讨论】:

以上是关于Android 在这张图片之上画一张图片(动态)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 中将一张图片添加到其他图片之上

怎么用ANDROID实现这个功能

C#在winform上画一张大于全屏的图片(至少3000*3000像素)。在窗口最大化下用鼠标拖动图片,必须画面流畅。

C#在winform上画一张大于全屏的图片(至少3000*3000像素)。在窗口最大化下用鼠标拖动图片,必须画面流畅。

C#在winform上画一张大于全屏的图片(至少3000*3000像素)。在窗口最大化下用鼠标拖动图片,必须画面流畅。

如何用层(DIV)给一张图片上的固定文字添加超链接?