2

我是一名初学者 Android 开发人员,所以如果这个问题的答案很明显,我很抱歉。

我想将两张图片添加到imageView. 第一张图片会更大,它的位置不会改变。第二个会更小,并且它的位置会垂直变化(我认为它可以定位到 16 种组合)。只有当用户按下按钮时,第二张图像的位置才会改变。有没有办法将两张图片设置为一个位图,然后将它们绘制到ImageView

4

4 回答 4

3

如果set two pictures into one bitmap and then draw them to ImageView是要求,我会建议以下内容:

您可以从较大的位图创建画布,并在其上绘制较小的位图,并在 Image View 上显示绘制的位图。

你必须计算好绘图的位置。

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);
于 2013-06-15T07:30:12.993 回答
0

ImageView 与单个位图相关。您可以自己绘制位图,然后将其传递给 ImageView,或者您可以使用其他组件,例如带有静态图像的 gridlayout(或 gridview)作为背景,而您可以在任何地方使用动态图像。

抱歉,如果我没有正确回答您的问题...

于 2013-06-15T07:17:24.343 回答
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()
}
于 2013-06-15T07:18:09.457 回答
0

FrameLayout与两个一起使用ImageView。然后将位图设置为该图像视图。

于 2013-06-15T07:23:10.490 回答