Как добавить пользовательские рамки к изображениям программно

Я хочу создать приложение, в котором мне нужно добавлять кадры к изображениям. Я понятия не имею, как это переоценить. У меня есть одна ссылка, по которой кадры добавляются к изображениям. Кто-нибудь может мне помочь.

Вот ссылка.

@Заранее спасибо!!


person Community    schedule 19.03.2013    source источник


Ответы (2)


Изменить: Галерея 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[] - это массив рисунков, т.е. разные кадры

Следующий метод будет динамически объединять два изображения

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, чтобы получить нужную позицию кадра на изображении.

person nidhi_adiga    schedule 19.03.2013
comment
@спасибо nidhi_adiga, можно отобразить некоторые пользовательские кадры внизу, если щелкнуть нижние кадры, изображение будет установлено вместе с кадром.? - person ; 19.03.2013
comment
Да, возможно, вы можете поместить несколько кадров в горизонтальную галерею, а в галерее onItemclick вы можете установить этот конкретный кадр в изображение. - person nidhi_adiga; 19.03.2013
comment
Нет галереи OnItemClick, вам нужно вызвать вышеуказанный метод, передавая кадр и изображение. - person nidhi_adiga; 19.03.2013
comment
круто, но все же у меня есть какая-то путаница! у меня другое изображение в представлении изображения, поэтому щелчок по элементу галереи не работает! - person ; 19.03.2013
comment
Метод drawBitmap(Bitmap, float, float, Paint) в типе Canvas неприменим для аргументов (ImageView, int, int, null) - person ; 19.03.2013
comment
Вы должны отправить изображение (преобразованное в растровое изображение) в ImageView, а не в ImageView - person nidhi_adiga; 19.03.2013
comment
k.. я использовал что-то вроде этого imgView.draw(comboImage); - person ; 19.03.2013
comment
@nidhi_adiga: Я попробовал ваш фрагмент кода. Я получил следующий вывод: imgur.com/so5auQk Я бы хотел бы получить следующее: imgur.com/TZfn40Q - я пытаюсь добиться этого для маркера карты в своем приложении .. Вы можете помочь мне исправить это? Спасибо! - person TheDevMan; 19.09.2014
comment
Привет! Попробуйте изменить растровые изображения, которые вы отправляете, на функцию «combineImages (img1, img2)», то есть вместо img1 отправьте img2 наоборот... И вам, возможно, придется изменить размер растрового изображения... - person nidhi_adiga; 19.09.2014

Есть много способов. Очень простой способ заключается в том, что вы можете нарисовать свою собственную рамку поверх изображения в методе onDraw представления, а затем нарисовать представление в растровом изображении. Есть еще один способ: записать данные пикселей кадра в данные пикселей изображения, а затем объединить новое изображение с кадром, вы можете использовать openCV или другие третьи библиотеки для декодирования изображений.

person George    schedule 19.03.2013
comment
спасибо за ваш быстрый ответ, я хочу просмотреть кадры внизу, щелкнув кадр, который изображение должно добавить с этим кадром. Возможно ли это - person ; 19.03.2013