如何以编程方式向图像添加自定义框架

时间:2013-03-19 06:40:43

标签: android frames image-editing

我想创建一个应用程序,我需要在图像中添加帧。我不知道重新评估这个。我有一个链接,帧被添加到images.could任何人帮助我。

以下是link

@Thanks in Advance !!

3 个答案:

答案 0 :(得分:8)

修改:图库OnItemClickListener

gallery.setOnItemClickListener(new OnItemClickListener() {
        Bitmap frame = null, out = null;

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
           Bitmap urImage = BitmapFactory.decodeResource(getResources(),
                    R.drawable.urBackgroundImageID);//edit
            frame = BitmapFactory.decodeResource(getResources(),
                    frames[arg2]);
            out = combineImages(frame, urImage);
            imageView.setImageBitmap(out); //add "out" for ur ImageView
        }
    });

frames[]是drawables数组,即不同的框架

以下方法将动态组合两个图像

public Bitmap combineImages(Bitmap frame, Bitmap image) {

    Bitmap cs = null;
    Bitmap rs = null;

    rs = Bitmap.createScaledBitmap(frame, image.getWidth(),
            image.getHeight(), true);

    cs = Bitmap.createBitmap(rs.getWidth(), rs.getHeight(),
            Bitmap.Config.RGB_565);

    Canvas comboImage = new Canvas(cs);

    comboImage.drawBitmap(image, 0, 0, null);
    comboImage.drawBitmap(rs, 0, 0, null);

    if (rs != null) {
        rs.recycle();
        rs = null;
    }
    Runtime.getRuntime().gc();

    return cs;
}

您可以在

中尝试不同的整数值
comboImage.drawBitmap(image, 0, 0, null);
comboImage.drawBitmap(rs, 0, 0, null);

我已将0放在图像上获取所需的帧位置。

答案 1 :(得分:0)

有很多方法。一种非常简单的方法是,您可以在View的onDraw方法中在图像上绘制自定义框架,然后在位图中绘制视图。还有另一种方法,将帧像素数据写入图像像素数据,然后将新图像与帧组合,您可以使用openCV或其他第三个库来解码图像。

答案 2 :(得分:-6)

 <FrameLayout
         android:id="@+id/frame"
         android:layout_width="120dp"
        android:layout_height="120dp"
        android:foreground="@drawable/your frame...">

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:layout_margin="10dp"
        android:layout_gravity="center"
        android:src="@drawable/ic_launcher" />
    </FrameLayout>