2012-01-29 3 views
4

Позвольте мне начать с того, что я в основном новичок в написании Java, поэтому я хотел бы получить полное объяснение. Не только изрыгать кода, но то, что дает некоторые в месте, почему и где он должен бытьAndroid: рисование растрового изображения в конкретном месте, отказ от рисования

Я в настоящее время пытающегося написать заявление, как я когда-нибудь я есть некоторые проблемы с холстом и рисовать растровое изображение, которое я хотел бы на нем. Это мой код, чтобы сделать изображение:

Canvas canvas = null; 
Bitmap image = BitmapFactory.decodeResource(getResources(), R.drawable.image); 
canvas.drawBitmap(image, 10, 800, null); 

Этот метод (выжидательно) бросает исключение нулевого указателя. Однако определение «canvas» как null - это единственный вариант, который дает мне Eclipse. При попытке определить его как

Canvas canvas = new Canvas(); 

Android просто отказывается рисовать растровое изображение. Я уверен, что мой образ находится в разрешении/рисуем/изображения Если это поможет, то изображение сохраняется как «image.png»

Как бы я сделать Android дисплей/отображать мое изображение/растровое изображение в определенном месте Я попросил его нарисовать изображение (10x800)?

ответ

4

Написание нонсенса, который решает ошибку компилятора, не меняет того факта, что это вздор! :)

Вы должны получить ссылку на объект Canvas другим способом. Вы можете быть более конкретными о том, что именно вы пытаетесь сделать, чтобы мы могли предложить, как вы должны это делать. (. Ex вы пытаетесь просто отобразить изображение вместе с некоторыми другими Просмотры Вы пытаетесь создать пользовательский вид Вы можете просто хотите рассмотреть возможность использования ImageView?)

Edit:

Вы должны прочитать об архитектуре Android на сайте developer.android.com. Если вы просто пытаетесь показать изображение, возможно, нет причин использовать холст напрямую. Тем не менее, вы можете сделать в настраиваемое представление, расширяя класс View

class myView extends View{ 

    Bitmap bm; 

    loadBitmap() 
    { 
     bm = BitmapFactory.decodeResource(getResources(), R.drawable.image); 
    } 

    @Override 
    public void draw(Canvas c) 
    { 
     c.drawBitmap(bm, XCORD, YCORD, null); 
    } 
} 

если вам не нужен пользовательский вид, просто использовать класс ImageView

class MyActivty extends Activity{ 
    @Override 
    public void onCreate(Bundle b) 
    { 
     super.onCreate(b); 
     ImageView iv = new ImageView(this); 
     iv.setImageResource(R.drawable.pic); 
     setContentView(iv); 
    } 
} 

Предупреждение: Я написал эти вызовы методов от верхней части головы, они могут быть слегка отключены.

+0

Я просто пытаюсь получить Android для рисования растрового изображения в текущем представлении на шнурах 10X800 ... Код, который будет делать только это, будет оценен или просто даст мне то, что холст должен быть инициализирован, чтобы предотвратить NUllPointer, позволяя Android рисовать и отображать растровое изображение. – DeadChex

+0

. Первый soloutiton, как в моем проекте, так и в новом проекте, приводит к ошибке Eclipse с «Неявным супер конструктором View() для конструктора по умолчанию не определено. Необходимо определить явный конструктор« on », class CustomView extends View {«В частности, часть« CustomView »... Добавление« public CustomView (контекст контекста) »{ super (контекст); \t \t \t \t // TODO Auto-порожденных конструктор окурок \t \t \t} Как sugessted по Eclipse, решить вопрос, как никогда Android не отображается изображение (Да я позвонил c.drawBitmap) Пожалуйста, помогите, я буду стараться Второе решение скоро, и отправьте ответ – DeadChex

+0

Извините, но из того, что я могу сказать, кажется, что вы вообще не читали документацию для Android.(Не говоря уже о том, что вам, вероятно, нужно больше узнать о программировании вообще, прежде чем пытаться написать приложение для Android). Прочтите введение и следуйте всем учебникам на сайте developer.android.com. – you786

Смежные вопросы