Я новичок в Android в Android, и я экспериментирую с объектом Canvas.Как я могу правильно использовать класс Canvas для показа изображения в ImageView в этом простом приложении для Android?
Я пытаюсь добавить его в Canvas, а затем показать его в извлеченной ImageView (я знаю, что это не стандартный и простой способ, чтобы показать изображение в ImageView, но это лишь упрощенная эксперимент для еще более сложной вещи, которую я должен сделать, используя Canvas).
Так что у меня star.png (32х32 пикселей значок в моих /RES/рисуем/ папки), и я пытаюсь
Это мой 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>
Этот макет содержит ImageView, имеющий ID = star_container, который где я должен рисовать изображение с помощью Холста
И это MainActivity класса, обрабатывать эту точку зрения:
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));
}
}
Так в OnCreate() метода я извлечение ImageView где образ должен быть помещенным. Затем я создать Bitmap объекта извлечение star.png изображения из resoruces, которые будут добавлены к otuput Bitmap с использованием Холста.
Наконец я установить этот выход Bitmap в получить ImageView.
Так я ожидал, что, когда приложение работает, предыдущий ImageView содержит star.png образ, но он не появляется.
У меня нет ошибки при выполнении этого приложения, но единственным результатом, который я получаю, является текстовое сообщение, определенное в TextView.
Почему? Что не так? Что мне не хватает? Как я могу изменить этот код и позволить ему работать?
Это не то, как вы используете Canvas вообще. Чтобы сделать вид с помощью Canvas, вы создадите собственный класс View и переопределите onDraw. Вам будет передан холст для рисования. Код, который у вас здесь, настолько запутан, что он не имеет большого значения. –