나는 안드로이드에서 신작이다. 나는 캔버스 개체로 약간의 실험을하고있다.Canvas 클래스를 사용하여이 간단한 Android 앱에서 ImageView에 이미지를 올바르게 표시하려면 어떻게해야합니까?
나는 검색 이미지 뷰 (나는이 이미지 뷰에 이미지를 표시하는 표준 및 간단한 방법은 아니라는 것을 알고에 캔버스에 추가하고 다음을 보여주기 위해 노력하고 있지만, 이것은 단지 단순화 더 복잡한 일을하기위한 실험. 캔버스). 그래서
나는 star.png (당김 내 /입술로 32 × 32 픽셀 아이콘// 폴더)를하고 난
이 내 activity_main.xml 레이아웃 구성 파일에 노력하고 있습니다 :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
<ImageView
android:id="@+id/star_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
이 레이아웃은 난을 그릴 수있는 곳입니다 이미지 뷰 가진 ID = star_container를 포함 이미지가 있어야 할 곳에 나는 이미지 뷰를 검색 에서 onCreate에 따라서
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageView imgView = (ImageView) findViewById(R.id.star_container);
Canvas canvas;
Bitmap star = BitmapFactory.decodeResource(getResources(), R.drawable.star);
Bitmap output = Bitmap.createBitmap(32, 32, Bitmap.Config.ARGB_8888);
canvas = new Canvas(output);
canvas.drawBitmap(star, star.getWidth() + 2, 0, null);
imgView.setImageDrawable(new BitmapDrawable(getResources(), output));
}
}
() 방법 :
그리고 이것은이보기를 처리하는 MainActivity 클래스 인 캔버스를 사용하여 이미지 놓는다. 그런 다음 I은 캔버스를 사용 otuput 맵에 추가 될 resoruces에서 star.png 화상을 검색하는 비트 맵 오브젝트를 생성한다.
마지막으로 출력 비트 맵을 ImageView으로 설정합니다.
그래서 나는 앱이 실행 중일 때, 이전 이미지 뷰가 star.png 이미지를 포함하지만이 표시되지 않는 것을 기대했다.이 응용 프로그램을 실행할 때 오류가 없지만 얻은 유일한 출력은 TextView에 정의 된 텍스트 메시지입니다.
왜? 뭐가 잘못 되었 니? 내가 뭘 놓치고 있니? 이 코드를 수정하고 작동 시키려면 어떻게해야합니까?
전혀 캔버스를 사용하지 않습니다. Canvas를 사용하여 뷰를 그리려면 사용자 정의 View 클래스를 만들고 onDraw를 재정의합니다. 그릴 수있는 캔버스가 전달됩니다. 여기에있는 코드는 너무 복잡하여 보상 할 수없는 코드입니다. –