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 在这张图片之上画一张图片(动态)的主要内容,如果未能解决你的问题,请参考以下文章
C#在winform上画一张大于全屏的图片(至少3000*3000像素)。在窗口最大化下用鼠标拖动图片,必须画面流畅。
C#在winform上画一张大于全屏的图片(至少3000*3000像素)。在窗口最大化下用鼠标拖动图片,必须画面流畅。