밈 생성기 앱을 만들려고합니다. 이를 위해 이미지와 몇 가지 텍스트 뷰를 포함하는 상대 레이아웃을 비트 맵으로 변환하고 있습니다. 그런 다음 그 이미지를 새로운 활동에 전달합니다. 그러나 두 번째 활동에는 아무것도 나타나지 않습니다. 비어 있습니다. 이유를 알 수 있습니까?
도움을 주시면 감사하겠습니다. 나는 이것으로 꽤 오랫동안 어려움을 겪고 있습니다.
미리 감사드립니다.
다음은 코드입니다.
DetailsActivity.java (이미지를 포함하는 상대 레이아웃과 이미지로 변환하는 몇 개의 TextView를 포함하는 첫 번째 활동)
package com.jobaka.www.jobaka;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import java.util.HashMap;
/**
* Created by Psp on 2016-03-03.
*/
public class DetailsActivity extends AppCompatActivity {
EditText etTop, etBottom;
TextView tvTop, tvBottom;
Button bCreate;
String imgstring;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.details_activity);
Intent intent = getIntent();
int id = intent.getIntExtra("id", -1);
if(id != -1){
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), id);
ImageView imageView = (ImageView) findViewById(R.id.image);
imageView.setImageBitmap(bitmap);
}else{
}
//imageUri = Uri.parse(extras.getString("imageUri"));
etTop = (EditText) findViewById(R.id.etTop);
tvTop = (TextView) findViewById(R.id.tvTop);
etTop.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
tvTop.setText(s.toString());
}
public void beforeTextChanged(CharSequence s, int start,int count, int after) {}
public void onTextChanged(CharSequence s, int start,int before, int count) {}
});
etBottom = (EditText) findViewById(R.id.etBottom);
tvBottom = (TextView) findViewById(R.id.tvBottom);
etBottom.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable sb) {
tvBottom.setText(sb.toString());
}
public void beforeTextChanged(CharSequence sb, int start,int count, int after) {}
public void onTextChanged(CharSequence sb, int start,int before, int count) {}
});
bCreate = (Button) findViewById(R.id.bCreate);
bCreate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
RelativeLayout v = (RelativeLayout)findViewById(R.id.iFrame);
Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(),
Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
HashMap<String, Bitmap> mbit = new HashMap<String, Bitmap>();
mbit.put(imgstring, bitmap);
Intent sendImage = new Intent(DetailsActivity.this, FullImage.class);
sendImage.putExtra("key", imgstring);
startActivity(sendImage);
}
});
}
}
FullImage.java (이전 활동에서 만들기 버튼을 클릭 한 후 아무것도 나타나지 않는 두 번째 활동)
package com.jobaka.www.jobaka;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.ImageView;
public class FullImage extends AppCompatActivity {
ImageView finalimage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_full_image);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Intent intent = getIntent();
String imgstring = intent.getExtras().getString("key");
//String imgstring = startingIntent.getStringExtra("pic");
Bitmap bitmap = BitmapFactory.decodeFile(imgstring);
finalimage = (ImageView) findViewById(R.id.ivFull);
finalimage.setImageBitmap(bitmap);
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();
}
});
}
}
보내다
Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(),
Bitmap.Config.ARGB_8888);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, byteArrayOutputStream );
byte[] b = byteArrayOutputStream .toByteArray();
intent.putExtra("key", b);
받다:
Bundle extras = getIntent().getExtras();
byte[] b = extras.getByteArray("key");
Bitmap bitmap = BitmapFactory.decodeByteArray(b, 0, b.length);
finalimage.setImageBitmap(bitmap );
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다