Dynamische Änderung der ImageView-Resource nach Bildschirmberührung

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Dynamische Änderung der ImageView-Resource nach Bildschirmberührung

    Guten Abend

    Hab da ein kleines Problem beim Ändern der ImageView-Resource. Ich habe nur eine Activity-Klasse und eine Custom View-Klasse. Im Custom View wird via OnTouchEvent die Berührung gehanhabt und dann in den Hilfsklassen der Custom View Klasse weiter verarbeitet. Diese Lauten FlaechenAuswahl und ImageChanger. Nun möchte ich im ImageChanger das Bild , je nach Berührungsort des CustomView, ändern. Jedoch bring ich das einfach nicht hin, momentan gibt es zwar keinen Fehler mehr aus, das Bild ändert sich trotzdem nicht...
    Zur besseren Übersicht nehme ich alle bisherigen Versuche raus und lasse meine Hauptüberlegung einfach drin, damit es etwas übersichtlicher wird. Bei dieser Variante wird die 2. If-Bedigung in der Changer-Methode nicht eintreten, da das imgV = null ist.(Ohne die 2. Bedigung gäbe es eine FATAL EXCEPTION: main java.lang.NullPointerException).

    Daraus lässt sich schliessen, dass nicht richtig auf das ImageView Objekt zugegriffen wurde. Könnte dies mit dem Context im Zusammenhang liegen?
    Besten Dank

    Quellcode

    1. public class ImageChanger extends FlaechenAuswahl {
    2. static String getImName;
    3. static LayoutInflater controlInflater;
    4. static int getID;
    5. static int counter = 0;
    6. View view;
    7. static ImageView imgV;
    8. static Context blub;
    9. public ImageChanger(Context context, AttributeSet attrs) {
    10. super(context, attrs);
    11. }
    12. public void getImageId(String name) {
    13. getID = getResources().getIdentifier(name, "drawable", "com.test1.jassteppich.jasstepich20");
    14. }
    15. public void getImageName(){
    16. if (counter == 0) {
    17. getImName = "leerelinien";
    18. counter++;
    19. }
    20. else if (counter == 1) {
    21. getImName = "linie1";
    22. counter++;
    23. }
    24. else if (counter == 2) {
    25. getImName = "linien2";
    26. counter++;
    27. }
    28. else if (counter == 3) {
    29. getImName = "linien3";
    30. counter++;
    31. }
    32. else if (counter == 4) {
    33. getImName = "linien4";
    34. counter++;
    35. }
    36. else if (counter == 5) {
    37. getImName = "linien5";
    38. }
    39. }
    40. public void Change(){
    41. getImageName();
    42. getImageId(getImName);
    43. Log.d("", "Context lautet "+getContext());
    44. //Der Nachfolgende Code ist einfach meine Anfangs-und Hauptüberlegung
    45. imgV = (ImageView) findViewById(R.id.imageView1);
    46. if(getID != 0){
    47. Log.d("", "Vor dem Wechsel angekommen ");
    48. if(imgV != null) {
    49. Log.d("","imgV ist nicht null");
    50. Log.d("", "getID ist gleich "+getID);
    51. Log.d("", "Bild mit namen "+getImName);
    52. Log.d("","Context lautet"+layout.getContext());
    53. imgV.setImageResource(getID);
    54. }else {
    55. }}
    56. else{
    57. Log.d("", "Change ");
    58. }
    59. }
    60. }
    Alles anzeigen


    Quellcode

    1. <?xml version="1.0" encoding="utf-8"?>
    2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    3. android:id="@+id/num1"
    4. android:layout_width="match_parent"
    5. android:layout_height="match_parent"
    6. android:background="@drawable/tafelrichtig2"
    7. android:orientation="vertical" >
    8. <LinearLayout
    9. android:id="@+id/layout2"
    10. android:layout_width="wrap_content"
    11. android:layout_height="wrap_content"
    12. android:layout_alignParentBottom="true"
    13. android:layout_alignParentLeft="true" >
    14. <com.test1.jassteppich.jasstepich20.BeruehrungOben
    15. android:id="@+id/oben"
    16. android:layout_width="wrap_content"
    17. android:layout_height="576dp" />
    18. </LinearLayout>
    19. <LinearLayout
    20. android:layout_marginTop="10dp"
    21. android:id="@+id/layout1" android:layout_width="96dp" android:layout_height="191.5dp" android:layout_marginLeft="70dp" android:layout_alignTop="@+id/layout2">
    22. <ImageView
    23. android:id="@+id/imageView1"
    24. android:layout_width="96dp"
    25. android:layout_height="191.5dp"
    26. android:contentDescription="hunderter"
    27. android:scaleType="fitXY"
    28. />
    29. </LinearLayout>
    30. </RelativeLayout>
    Alles anzeigen

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Aless_55 ()