我是Android初学者,所以如果这个问题的答案显而易见,我很抱歉。
我想将两张图片添加到imageView
。第一张图片将更大,其位置不会改变。第二个会更小,它的位置会垂直变化(我认为有16种组合可以定位)。仅当用户按下按钮时,第二图像的位置才会改变。有没有办法将两张图片设置为一个位图,然后将它们绘制到ImageView
?
答案 0 :(得分:3)
如果要求set two pictures into one bitmap and then draw them to ImageView
,我建议如下:
您可以从较大的位图创建画布,并在其上绘制较小的位图,并在图像视图上显示绘制的位图。
你必须计算绘图的位置。
Bitmap largeImage; // Get it with your own approach, this refers to larger image
Bitmap smallImage; // Get it with your own approach, this refers to small image
ImageView yourImageView;
Canvas canvas = new Canvas(largeImage);
//0f and 0f refers to coordinates of drawing, you may want to do some calculation here
// since you have like 16 different positions
canvas.drawBitmap(smallImage, 0f, 0f, null);
yourImageView.setImageBitmap(largeImage);
答案 1 :(得分:0)
ImageView与单个位图相关。您可以自己绘制位图,然后将其传递给ImageView,或者您可以使用其他组件,例如gridlayout(或gridview),其中静态图像用于背景,动态图像可以在任何地方使用。
很抱歉,如果我没有问你的问题......
答案 2 :(得分:0)
你应该做的是,这是XML:
<RelativeLayout
android:id="@+id/view_base"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/iv_parent"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/circle" />
<ImageView
android:id="@+id/iv_child"
android:layout_width="80dp"
android:layout_height="80dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" />
以下是使用两种方法的代码:
//This is what I recommend
RelativeLayout view_base=(RelativeLayout)findViewById(R.id.view_base);
ImageView iv_parent=(imageView)findViewById(R.id.iv_parent);
ImageView iv_child=(imageView)findViewById(R.id.iv_child);
yourButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
iv_child.setBackgroundResource(R.drawable.image);
}
});
//This is how you want it
RelativeLayout view_base=(RelativeLayout)findViewById(R.id.view_base);
ImageView iv_parent=(imageView)findViewById(R.id.iv_parent);
ImageView iv_child=(imageView)findViewById(R.id.iv_child);
ImageView iv_single=(imageView)findViewById(R.id.iv_single);
yourButton.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
iv_child.setBackgroundResource(R.drawable.image);
iv_single.setImageBitmap(getMergedBitmap());
}
});
//This method will convert view to bitmap
private Bitmap getMergedBitmap(){
view_base.setDrawingCacheEnabled(true);
view_base.buildDrawingCache();
return view_base.getDrawingCache()
}
答案 3 :(得分:0)
将FrameLayout
与ImageView
一起使用。然后将位图设置为该imageviews。