2012-01-19 10 views
3

이미지에 임의의 인용 부호를 추가하는 Android 앱을 만들려고합니다. 응용 프로그램을 시작할 때 표시하는 사용자 지정된 이미지에서이미지에 텍스트를 추가하고 새 이미지로 저장하는 방법

  1. 시작 :

    일반적인 프로세스는이입니다.

  2. 모든 사용자가 할 수있는 이미지는 탭하여 이미지 위에 중첩되는 새로운 임의의 "견적"을 생성하는 것입니다.
  3. 사용자는 새로 만든 이미지를 그가 선택한 인용구와 함께 배경 화면으로 저장할 수 있습니다.

ImageView에서 이미지를 표시 할 수있는 지점에 도달했습니다.

내 견적 목록은 내 strings.xml 파일에 저장됩니다.

+0

너무 가볍고 완벽하게 명확하지 않은 것에 대해 사과드립니다. Thomas. – Francesco

+0

하나의 단일 이미지 또는 여러 이미지입니까?문자열/따옴표 부분을 이해했습니다. 그냥 이미지 부분에 분명히하고 싶습니다. – Ghost

+0

답장을 보내 주셔서 감사합니다. 이미지는 항상 동일하며 변경 될 수있는 것은 따옴표입니다. 사용자가 이미지를 탭하면 이미지가 나타납니다. – Francesco

답변

1

Francesco 내 친구, 나는 일하는 코드는 아니지만 아이디어를 가지고 있습니다. 그래서, 여기있다 :

ImageView iv = (ImageView)findViewById(R.id.imageview1); 
iv.setOnClickListener(new View.OnClickListener() 
    { 
     public void onClick(View v) 
     { 
      /** When I say do your stuff here, I mean read the user input and set your wallpaper here. I'm sorry that I don't really know how to save/set the wallpaper */ 
     } 
    }); 

는/사용자 입력을 읽는 무작위 따옴표를 생성에 관해서

, 당신은이 작업을 수행 할 수 있습니다 :

을 당신은 당신을 말했다

ImageView 아래처럼상의 onClickListener() 구현 이미 strings.xml 파일에 인용문이 저장되어 있습니다. 이러한 문자열의 ID를 사용하면 java imports - java.util.Scannerjava.util.Random을 사용하는 switch 사례 시나리오를 구현할 수 있다고 생각합니다. 궁극적으로 사용자가 ImageViewonClickListener에서 이러한 값을 사용하면 원하는 출력이 될 수 있습니다.

나는 내 대답이 너무 모호하다는 것을 알고 있지만, 구현할 수있는 것에 관해서는 당신에게 분노를 줄 수 있다는 희 망한 희망을 품고있다. 나는 이보다 더 좋은 대답이 있기를 진심으로 바랍니다. 그렇지 않다면, 나는 이것이 당신에게 어떤 도움이되기를 바란다. 그리고 나는 이것이 단지 단순한 추측 일 뿐이므로 내가 잘못된 방향으로 인도하지 않을 것을 희망한다. 미안,하지만이게 내가 가진 전부 야.

+0

당신의 대답은 실제로 또한 똑같은 것에 대해 강경하기 때문에 실제로 훌륭합니다. 나에게 1과 N 사이의 숫자를 생성하는 무작위 변수를 사용하여 (N은 따옴표의 수임) 텍스트 인쇄를 OnClick 이벤트에 연결합니다. – Francesco

+0

그러나 저는 또한 애플리케이션을 새로운 애플리케이션으로 설치하도록 내 프로젝트 로직을 옮겼습니다. 응용 프로그램을 사용하는 대신 모든 작업을 수행하는 라이브 벽지 -> 새 따옴표 생성 -> 이미지 저장 ... 시간당 1 인용의 요점은 무엇입니까 :) – Francesco

+0

쿨! 그렇다면 내 대답을 수락하고 그것을 투표하는 것은 어떻습니까? ;) – Ghost

1

나는 내가 (텍스트와 함께 이미지를 저장)

는 안드로이드 포팅 된 ImageMagick를 것 같다 몇 년 전 ImageMagick를 가진 PC에 대한 이런 짓을 알고, 그래서 나는, 자신의 문서에 파고 시작합니다.

https://github.com/lilac/Android-ImageMagick

6

나는 응용 프로그램에서 같은 것을 할. 캔버스를 사용하십시오.

내 코드 조각을 편집했는데 실제로 배경과 물건에 몇 가지 다른 이미지가 추가되었습니다. 코드의

고기 :

private static Bitmap getPoster(...) { 
    Bitmap background = BitmapFactory.decodeResource(res, background_id) 
     .copy(Bitmap.Config.ARGB_8888, true); 
    Canvas canvas = new Canvas(background); 
    Typeface font = Typeface.createFromAsset(res.getAssets(), FONT_PATH); 
    font = Typeface.create(font, Typeface.BOLD); 
    Paint paint = new Paint(); 
    paint.setTypeface(font); 
    paint.setAntiAlias(true); 
    paint.setColor(Color.WHITE); 
    paint.setStyle(Style.FILL); 
    paint.setShadowLayer(2.0f, 1.0f, 1.0f, Color.BLACK); 
    float fontSize = getFontSize(background.getWidth(), THE_QUOTE, paint); //You'll have to define a way to find a size that fits, or just use a constant size. 

    paint.setTextSize(fontSize); 
    canvas.drawText(THE_QUOTE, (background.getWidth() - paint.measureText(THE_QUOTE))/2, 
     background.getHeight() - FILLER_HEIGHT, paint); //You might want to do something different. In my case every image has a filler in the bottom which is 50px. 
    return background; 
} 

클래스에서 그 자신의 버전을 넣고 그것을 이미지 ID와 다른 것을 공급. 원하는대로 할 수있는 비트 맵을 반환합니다 (이미지 뷰에 표시하고 사용자가 저장하고 월페이퍼로 설정하도록 허용).

관련 문제