从Android其它类显示图像 [英] displaying image from other class in android

查看:110
本文介绍了从Android其它类显示图像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我通过调用其他类显示在活动的图像,但它不显示图像它显示我error.my code是如下

 公共类VideosActivity延伸活动{
    // DrawView画;
    浮动= 0;
    浮B = 0;
    ImageView的形象;
    MotionEvent事件;
    按钮后退;
    按钮旁边;
    的TextView吨;
    字符串信息=;
    诠释计数= 0;
    FirstImage I =新FirstImage(本);
TableLayout TL;
RU的TableRow,RM,RL,RLM;    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
         的setContentView(R.layout.videos_layout);
         I =(FirstImage)findViewById(R.id.first);
         //回来=(按钮)findViewById(R.id.button1);
        //下一=(按钮)findViewById(R.id.button2);
        //
     // addListenerOnButton();
}    私人无效addListenerOnButton(){
        // TODO自动生成方法存根        如果(计数== 0)
            back.setEnabled(假);        next.setOnClickListener(新OnClickListener(){
            公共无效的onClick(查看为arg0){
                如果(计数== 0){
                image.setImageResource(R.drawable.hand);
                back.setEnabled(真);
                算上++;                addListenerOnButton();                }
                否则如果(计数== 1){
                    image.setImageResource(R.drawable.tissue);
                    算上++;                    addListenerOnButton();                }                否则如果(计数== 2){
                    image.setImageResource(R.drawable.cellconstfinal1);
                    算上++;                    addListenerOnButton();
                }
                否则如果(计数== 3){
                    //核
                    image.setImageResource(R.drawable.cellconstfinal1);
                    算上++;                    addListenerOnButton();                }
                否则,如果(计数== 4){
                    // nchromosome
                    image.setImageResource(R.drawable.hand);
                    算上++;                    addListenerOnButton();                }
                其他
                { //双螺旋
                    算上++;
                    image.setImageResource(R.drawable.handash1);
                    next.setEnabled(假);                    addListenerOnButton();                }            }
        });        back.setOnClickListener(新OnClickListener(){
            公共无效的onClick(查看为arg0){
                如果(计数== 1){
                    image.setImageResource(R.drawable.human);
                    back.setEnabled(假);
                    计数 - ;                    addListenerOnButton();                    }
                    否则如果(计数== 2){
                        image.setImageResource(R.drawable.hand);
                        计数 - ;                        addListenerOnButton();                    }                    否则如果(计数== 3){
                        image.setImageResource(R.drawable.tissue);
                        计数 - ;                        addListenerOnButton();
                    }
                    否则,如果(计数== 4){
                        image.setImageResource(R.drawable.cellconstfinal1);
                        计数 - ;                        addListenerOnButton();                    }
                    否则,如果(计数== 5){
                        //核
                        image.setImageResource(R.drawable.tissue);
                        计数 - ;                        addListenerOnButton();
                    }
                    其他{
                        //染色体
                        //计数== 6
                        image.setImageResource(R.drawable.cellconstfinal1);
                        计数 - ;                        addListenerOnButton();
                        next.setEnabled(真);                    }
                }
            });
    }

这是显示我error.i我不是理解为什么它显示下面的错误我下面。

  05-10 19:27:32.097:E / AndroidRuntime(638):致命异常:主要
05-10 19:27:32.097:E / AndroidRuntime(638):了java.lang.RuntimeException:无法实例活动ComponentInfo {com.example.androidtablayout / com.example.androidtablayout.VideosActivity}:显示java.lang.NullPointerException
05-10 19:27:32.097:E / AndroidRuntime(638):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.app.ActivityThread.startActivityNow(ActivityThread.java:2503)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.widget.TabHost $ IntentContentStrategy.getContentView(TabHost.java:651)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.widget.TabHost.setCurrentTab(TabHost.java:323)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.widget.TabHost $ 2.onTabSelectionChanged(TabHost.java:129)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.widget.TabWidget $ TabClickListener.onClick(TabWidget.java:453)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.view.View.performClick(View.java:2408)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.view.View $ PerformClick.run(View.java:8816)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.os.Handler.handleCallback(Handler.java:587)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.os.Handler.dispatchMessage(Handler.java:92)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.os.Looper.loop(Looper.java:123)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.app.ActivityThread.main(ActivityThread.java:4627)
05-10 19:27:32.097:E / AndroidRuntime(638):在java.lang.reflect.Method.invokeNative(本机方法)
05-10 19:27:32.097:E / AndroidRuntime(638):在java.lang.reflect.Method.invoke(Method.java:521)
05-10 19:27:32.097:E / AndroidRuntime(638):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)
05-10 19:27:32.097:E / AndroidRuntime(638):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-10 19:27:32.097:E / AndroidRuntime(638):在dalvik.system.NativeStart.main(本机方法)
05-10 19:27:32.097:E / AndroidRuntime(638):致:显示java.lang.NullPointerException
05-10 19:27:32.097:E / AndroidRuntime(638):在android.content.ContextWrapper.getResources(ContextWrapper.java:80)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.view.View<&初始化GT;(View.java:1810)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.widget.ImageView<&初始化GT;(ImageView.java:103)
05-10 19:27:32.097:E / AndroidRuntime(638):在com.example.androidtablayout.FirstImage<&初始化GT;(FirstImage.java:8)
05-10 19:27:32.097:E / AndroidRuntime(638):在com.example.androidtablayout.VideosActivity<&初始化GT;(VideosActivity.java:27)
05-10 19:27:32.097:E / AndroidRuntime(638):在java.lang.Class.newInstanceImpl(本机方法)
05-10 19:27:32.097:E / AndroidRuntime(638):在java.lang.Class.newInstance(Class.java:1429)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.app.Instrumentation.newActivity(Instrumentation.java:1021)
05-10 19:27:32.097:E / AndroidRuntime(638):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
05-10 19:27:32.097:E / AndroidRuntime(638):18 ...更多
05-10 19:27:41.897:I /流程(638):发送信号。 PID:638 SIG:9

第一个图像.jav code是present这里...........

 公共类FirstImage扩展了ImageView的{
    公共FirstImage(上下文的背景下){
        超级(上下文);
        // TODO自动生成构造函数存根    }
}

视频布局为code是如下....

 <?XML版本=1.0编码=UTF-8&GT?;<滚动型的xmlns:机器人=htt​​p://schemas.android.com/apk/res/android
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT
    >
  <! - 为视频屏幕设计 - >
< TableLayout
    机器人:ID =@ + ID / tablelayout
    机器人:layout_width =FILL_PARENT
    机器人:layout_height =FILL_PARENT
    机器人:stretchColumns =1>     <的TableRow
          机器人:ID =@ + ID / tableRow1
          机器人:layout_width =WRAP_CONTENT
          机器人:layout_height =WRAP_CONTENT>          <的TextView
               机器人:ID =@ + ID / TextView的
              机器人:layout_width =WRAP_CONTENT
              机器人:layout_height =WRAP_CONTENT
              机器人:填充=15dip
              机器人:文字=图片上点击它会告诉哪里是位于人体或细胞的DNA
              机器人:TEXTSIZE =18dip/>
      < /&的TableRow GT;      <的TableRow
          机器人:ID =@ + ID / tableRow2
          机器人:layout_width =WRAP_CONTENT
          机器人:layout_height =WRAP_CONTENT>          <的FrameLayout
        机器人:layout_width =WRAP_CONTENT
          机器人:layout_height =WRAP_CONTENT>
        < com.example.AndroidTablayout.FirstImage
            机器人:ID =@ + ID /第一
         机器人:layout_width =FILL_PARENT
         机器人:layout_height =FILL_PARENT
         机器人:SRC =@绘制/人/>
< /&的FrameLayout GT;
      < /&的TableRow GT;      <的TableRow
          机器人:ID =@ + ID / tableRow3
          机器人:layout_width =WRAP_CONTENT
          机器人:layout_height =WRAP_CONTENT>          <的LinearLayout
              机器人:ID =@ + ID / linearLayout1
              机器人:layout_width =WRAP_CONTENT
              机器人:layout_height =WRAP_CONTENT>              <按钮
                  机器人:ID =@ + ID /按钮1
                  机器人:layout_width =100dp
                  机器人:layout_height =WRAP_CONTENT
                  机器人:文字=返回/>              <按钮
                  机器人:ID =@ + ID /按钮2
                  机器人:layout_width =100dp
                  机器人:layout_height =WRAP_CONTENT
                  机器人:文字=下一步/>          < / LinearLayout中>      < /&的TableRow GT;
       <的TableRow
          机器人:ID =@ + ID / tableRow4
          机器人:layout_width =WRAP_CONTENT
          机器人:layout_height =WRAP_CONTENT>
          <的TextView
              机器人:ID =@ + ID / textView1
              机器人:layout_width =WRAP_CONTENT
              机器人:layout_height =WRAP_CONTENT
              机器人:填充=15dip
              机器人:文字=请不要介意
              机器人:TEXTSIZE =18dip/>
          < /&的TableRow GT;  < / TableLayout>
  < /滚动型>


解决方案

编辑:
检查这个答案:

自定义图像视图的Andr​​oid

也许你需要实现与AttributeSet中的参数构造函数。

I am displaying image in the activity by calling other class but it is not displaying the image it is showing me the error.my code is as follow

public class VideosActivity extends Activity {
    //DrawView draw;
    float a=0;
    float b=0;
    ImageView image;
    MotionEvent event;
    Button  back ;
    Button next;
    TextView t;
    String info = "";
    int count =0;
    FirstImage  i= new FirstImage (this);
TableLayout tl;
TableRow ru,rm,rl,rlm;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
         setContentView(R.layout.videos_layout);
         i=(FirstImage)findViewById(R.id.first);
         //back = (Button) findViewById(R.id.button1);
        // next = (Button) findViewById(R.id.button2);
        //
     // addListenerOnButton();


}



    private void addListenerOnButton() {
        // TODO Auto-generated method stub

        if (count == 0)
            back.setEnabled(false);

        next.setOnClickListener( new OnClickListener() {


            public void onClick(View arg0) {
                if(count==0){
                image.setImageResource(R.drawable.hand);
                back.setEnabled(true);
                count++;

                addListenerOnButton();

                }
                else if (count==1){
                    image.setImageResource(R.drawable.tissue);
                    count++;

                    addListenerOnButton();

                }

                else if (count==2){
                    image.setImageResource(R.drawable.cellconstfinal1);
                    count++;

                    addListenerOnButton();


                }
                else if (count==3){
                    //nucleus
                    image.setImageResource(R.drawable.cellconstfinal1);
                    count++;

                    addListenerOnButton();

                }
                else if (count==4){
                    //nchromosome
                    image.setImageResource(R.drawable.hand);
                    count++;

                    addListenerOnButton();

                }
                else
                {   //double helix
                    count++;
                    image.setImageResource(R.drawable.handash1);
                    next.setEnabled(false);

                    addListenerOnButton();

                }

            }
        });

        back.setOnClickListener(new OnClickListener() {


            public void onClick(View arg0) {
                if(count==1){
                    image.setImageResource(R.drawable.human);
                    back.setEnabled(false);
                    count--;

                    addListenerOnButton();

                    }
                    else if (count==2){
                        image.setImageResource(R.drawable.hand);
                        count--;

                        addListenerOnButton();

                    }

                    else if (count==3){
                        image.setImageResource(R.drawable.tissue);
                        count--;

                        addListenerOnButton();


                    }
                    else if (count==4){
                        image.setImageResource(R.drawable.cellconstfinal1);
                        count--;

                        addListenerOnButton();

                    }
                    else if (count==5){
                        //nucleus
                        image.setImageResource(R.drawable.tissue);
                        count--;

                        addListenerOnButton();


                    }
                    else {
                        //chromosome
                        //count==6
                        image.setImageResource(R.drawable.cellconstfinal1);
                        count--;

                        addListenerOnButton();
                        next.setEnabled(true);

                    }
                }
            });
    }

it is showing me the following error.i am not understanding why it is showing me following error.

05-10 19:27:32.097: E/AndroidRuntime(638): FATAL EXCEPTION: main
05-10 19:27:32.097: E/AndroidRuntime(638): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.androidtablayout/com.example.androidtablayout.VideosActivity}: java.lang.NullPointerException
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.app.ActivityThread.startActivityNow(ActivityThread.java:2503)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:127)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:339)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:651)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.widget.TabHost.setCurrentTab(TabHost.java:323)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:129)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:453)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.view.View.performClick(View.java:2408)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.view.View$PerformClick.run(View.java:8816)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.os.Handler.handleCallback(Handler.java:587)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.os.Handler.dispatchMessage(Handler.java:92)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.os.Looper.loop(Looper.java:123)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.app.ActivityThread.main(ActivityThread.java:4627)
05-10 19:27:32.097: E/AndroidRuntime(638):  at java.lang.reflect.Method.invokeNative(Native Method)
05-10 19:27:32.097: E/AndroidRuntime(638):  at java.lang.reflect.Method.invoke(Method.java:521)
05-10 19:27:32.097: E/AndroidRuntime(638):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
05-10 19:27:32.097: E/AndroidRuntime(638):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
05-10 19:27:32.097: E/AndroidRuntime(638):  at dalvik.system.NativeStart.main(Native Method)
05-10 19:27:32.097: E/AndroidRuntime(638): Caused by: java.lang.NullPointerException
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.content.ContextWrapper.getResources(ContextWrapper.java:80)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.view.View.<init>(View.java:1810)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.widget.ImageView.<init>(ImageView.java:103)
05-10 19:27:32.097: E/AndroidRuntime(638):  at com.example.androidtablayout.FirstImage.<init>(FirstImage.java:8)
05-10 19:27:32.097: E/AndroidRuntime(638):  at com.example.androidtablayout.VideosActivity.<init>(VideosActivity.java:27)
05-10 19:27:32.097: E/AndroidRuntime(638):  at java.lang.Class.newInstanceImpl(Native Method)
05-10 19:27:32.097: E/AndroidRuntime(638):  at java.lang.Class.newInstance(Class.java:1429)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
05-10 19:27:32.097: E/AndroidRuntime(638):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
05-10 19:27:32.097: E/AndroidRuntime(638):  ... 18 more
05-10 19:27:41.897: I/Process(638): Sending signal. PID: 638 SIG: 9

first image .jav code is present here ...........

public class FirstImage extends ImageView {
    public FirstImage(Context context) {
        super(context);
        // TODO Auto-generated constructor stub

    }




}

videos layout is code is as follow ....

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >


  <!--  Screen Design for VIDEOS -->
<TableLayout 
    android:id="@+id/tablelayout"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:stretchColumns="1">

     <TableRow
          android:id="@+id/tableRow1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" >

          <TextView
               android:id="@+id/textView"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:padding="15dip"
              android:text="pic on click which will tell where is the dna located in human body or cell "
              android:textSize="18dip" />
      </TableRow>

      <TableRow
          android:id="@+id/tableRow2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" >

          <FrameLayout 
        android:layout_width="wrap_content"
          android:layout_height="wrap_content">
        <com.example.AndroidTablayout.FirstImage
            android:id="@+id/first"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:src="@drawable/human"/>                                               
</FrameLayout>
      </TableRow>

      <TableRow
          android:id="@+id/tableRow3"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" >

          <LinearLayout
              android:id="@+id/linearLayout1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content" >

              <Button
                  android:id="@+id/button1"
                  android:layout_width="100dp"
                  android:layout_height="wrap_content"
                  android:text="Back" />

              <Button
                  android:id="@+id/button2"
                  android:layout_width="100dp"
                  android:layout_height="wrap_content"
                  android:text="Next" />

          </LinearLayout>

      </TableRow>
       <TableRow
          android:id="@+id/tableRow4"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" >
          <TextView
              android:id="@+id/textView1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:padding="15dip"
              android:text="please don't mind  "
              android:textSize="18dip" />
          </TableRow>

  </TableLayout>
  </ScrollView>

解决方案

EDIT: Check this answer:

custom image view android

Maybe you need to implement the constructor with the AttributeSet parameter.

这篇关于从Android其它类显示图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆