Användarprofil

Uppgifter
Användarnamn Mats_GA_Carlsson
Email
Besök 9
Hemsida Ingen
Plats (stad)
Senaste besök 22:41 - 17:e Mars 2013
Poster i forumet 3
Varningar 0
Grupp Medlem
Medlem sedan 15:09 - 27:e Februari 2013
Artiklar och filer
Den här användaren har inga artiklar eller filer

Avatar


Presentation av Mats_GA_Carlsson

Den här användaren har inte skapat någon personlig presentation.

Senaste inläggen i forumet

Hjälp med att hitta felet, android

Hej!
Jag har precis börjat göra en app till android. Jag vill skapa ensurfaceview som ska täcka halva skämen. Jag har läst endel om det och gjort följande försök men jag förstår inte felloggen.. Kan någon hjälpa mig?
Först har vi activityn:

  1. package com.testView.test;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5.  
  6. public class SurfaceViewExampleActivity extends Activity {
  7. theView P;
  8. @Override
  9. public void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. //setContentView(R.layout.main);
  12. setContentView(R.layout.tohavetheviewin);
  13.  
  14. P = (theView) findViewById(R.id.surfaceView1);
  15.  
  16. }
  17. }

Sedan SurfaceViewn:

  1. package com.testView.test;
  2.  
  3. import java.text.AttributedCharacterIterator.Attribute;
  4.  
  5.  
  6. import android.content.Context;
  7. import android.graphics.Bitmap;
  8. import android.graphics.BitmapFactory;
  9. import android.graphics.Canvas;
  10. import android.graphics.Paint;
  11. import android.util.AttributeSet;
  12. import android.view.SurfaceHolder;
  13. import android.view.SurfaceView;
  14.  
  15. public class theView extends SurfaceView implements SurfaceHolder.Callback,Runnable{
  16.  
  17. Bitmap b;
  18. Thread t;
  19. boolean isOk;
  20. SurfaceHolder holder;
  21. public theView (Context context) {
  22. super(context);
  23. // TODO Auto-generated constructor stub
  24.  
  25. holder=getHolder();
  26.  
  27. }
  28. public theView (Context context, Attribute atts) {
  29. super(context,(AttributeSet) atts);
  30. // TODO Auto-generated constructor stub
  31.  
  32. holder=getHolder();
  33.  
  34. }
  35.  
  36. @Override
  37. public void surfaceChanged(SurfaceHolder holder, int format, int width,
  38. int height) {
  39. // TODO Auto-generated method stub
  40. }
  41. @Override
  42. public void surfaceCreated(SurfaceHolder holder) {
  43. // TODO Auto-generated method stub
  44. }
  45. @Override
  46. public void surfaceDestroyed(SurfaceHolder holder) {
  47. // TODO Auto-generated method stub
  48. }
  49.  
  50. @Override
  51. public void run() {
  52. try{
  53. t.sleep(50);
  54. }catch(InterruptedException e ){
  55. e.printStackTrace();
  56. }
  57. while(isOk){
  58. if (!holder.getSurface().isValid())
  59. continue;
  60. }
  61. Canvas c =holder.lockCanvas();
  62. b= BitmapFactory.decodeResource(getResources(),R.drawable.superskruttigtmellantrad);
  63.  
  64. c.drawBitmap(b, 0, 0, new Paint());
  65. // TODO Auto-generated method stub
  66. holder.unlockCanvasAndPost(c);
  67. }
  68. public void pause(){
  69. isOk= false;
  70. while (true){
  71. try{
  72. t.join();
  73. }catch(InterruptedException e ){
  74. e.printStackTrace();
  75. }
  76. break;
  77. }
  78. t=null;
  79. }
  80. public void resume(){
  81. isOk=true;
  82. t=new Thread(this);
  83. t.start();
  84. }
  85. }

och sedan har vi xml-filen:
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical" >
  6.  
  7. <com.testView.test.theView
  8. android:id="@+id/surfaceView1"
  9. android:layout_width="fill_parent"
  10. android:layout_height="120dp"
  11. android:layout_weight = "1" />
  12.  
  13. <LinearLayout
  14. android:id="@+id/linearLayout1"
  15. android:layout_width="fill_parent"
  16. android:layout_height="wrap_content"
  17. android:gravity="center" >
  18.  
  19. <Button
  20. android:id="@+id/button1"
  21. android:layout_width="wrap_content"
  22. android:layout_height="wrap_content"
  23. android:text="button1" />
  24. <Button
  25. android:id="@+id/button2"
  26. android:layout_width="wrap_content"
  27. android:layout_height="wrap_content"
  28. android:text="button2" />
  29. </LinearLayout>
  30. </LinearLayout>

och slutligen felloggen:

  1. 03-15 13:50:34.766: D/dalvikvm(564): Not late-enabling CheckJNI (already on)
  2. 03-15 13:50:36.888: D/AndroidRuntime(564): Shutting down VM
  3. 03-15 13:50:36.896: W/dalvikvm(564): threadid=1: thread exiting with uncaught exception (group=0x409951f8)
  4. 03-15 13:50:36.936: E/AndroidRuntime(564): FATAL EXCEPTION: main
  5. 03-15 13:50:36.936: E/AndroidRuntime(564): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.testView.test/com.testView.test.SurfaceViewExampleActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class com.testView.test.theView
  6. 03-15 13:50:36.936: E/AndroidRuntime(564): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955)
  7. 03-15 13:50:36.936: E/AndroidRuntime(564): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
  8. 03-15 13:50:36.936: E/AndroidRuntime(564): at android.app.ActivityThread.access$600(ActivityThread.java:122)
  9. 03-15 13:50:36.936: E/AndroidRuntime(564): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
  10. 03-15 13:50:36.936: E/AndroidRuntime(564): at android.os.Handler.dispatchMessage(Handler.java:99)
  11. 03-15 13:50:36.936: E/AndroidRuntime(564): at android.os.Looper.loop(Looper.java:137)
  12. 03-15 13:50:36.936: E/AndroidRuntime(564): at android.app.ActivityThread.main(ActivityThread.java:4340)
  13. 03-15 13:50:36.936: E/AndroidRuntime(564): at java.lang.reflect.Method.invokeNative(Native Method)
  14. 03-15 13:50:36.936: E/AndroidRuntime(564): at java.lang.reflect.Method.invoke(Method.java:511)
  15. 03-15 13:50:36.936: E/AndroidRuntime(564): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
  16. 03-15 13:50:36.936: E/AndroidRuntime(564): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
  17. 03-15 13:50:36.936: E/AndroidRuntime(564): at dalvik.system.NativeStart.main(Native Method)
  18. 03-15 13:50:36.936: E/AndroidRuntime(564): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class com.testView.test.theView
  19. 03-15 13:50:36.936: E/AndroidRuntime(564): at android.view.LayoutInflater.createView(LayoutInflater.java:589)
  20. 03-15 13:50:36.936: E/AndroidRuntime(564): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:680)
  21. 03-15 13:50:36.936: E/AndroidRuntime(564): at android.view.LayoutInflater.rInflate(LayoutInflater.java:739)
  22. 03-15 13:50:36.936: E/AndroidRuntime(564): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
  23. 03-15 13:50:36.936: E/AndroidRuntime(564): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
  24. 03-15 13:50:36.936: E/AndroidRuntime(564): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
  25. 03-15 13:50:36.936: E/AndroidRuntime(564): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:251)
  26. 03-15 13:50:36.936: E/AndroidRuntime(564): at android.app.Activity.setContentView(Activity.java:1835)
  27. 03-15 13:50:36.936: E/AndroidRuntime(564): at com.testView.test.SurfaceViewExampleActivity.onCreate(SurfaceViewExampleActivity.java:12)
  28. 03-15

    Postad 14:56 - 15:e Mars 2013
Bakgrundsbild med flyttbara objekt på android

Hej!

Jag skulle vilja ha en bakgrund i form av en bild. Därefter vill jag kunna lägga till och ta ifrån objekt på denna bakgrund.

Tidigare har jag lagt till en bakgrund med hjälp av en xmlfil knuten till min "aktivitet"


<TextView
android:layout_width="match_parent"
android:layout_height="300dp"
android:id="@+id/touchpad"
android:background="@drawable/plan"
/>
och raden
Touchpad = (TextView)findViewById(R.id.touchpad);
i aktiviteten.


Nu vill jag istället skapa en view eller kanske än hellre en SurfaceView från min aktivitet och där skapa en canvas som bakgrundsbilden ritas i. För att jag sedan ska kunna läggar ritningen i en egen tråd så att de objekt jag lägger in, tar bort ritas om. Problemet är då att när jag lägger in min bild, i form av en bitmap verkar jag inte kunna kontrollera hur stor den blir på skärmen. Den flyter ut och anpassas inte till bakgrunden så som den gjorde när jag la till bakgrunden i aktiviteten.


Är det här det rätta sättet att lägga in bakrunden på eller finns det nåt annat sätt? Någon som kan ge mig ett exempel?

Tacksam för svar! Om jag uttryckt mig oklart,fråga :-)



Postad 10:05 - 12:a Mars 2013
objekt och android
Kommenteringstråd till blogginlägget objekt och android .

Postad 16:33 - 27:e Februari 2013

Skicka meddelande
Läs Mats_GA_Carlssons blog