android空指针错误

android空指针异常package cn.example.vstdemoimport java.util.ArrayListimport java.util.Listimport

android空指针异常
android空指针错误android空指针错误

package cn.example.vstdemo;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.graphics.Matrix;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.view.ViewGroup;
import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity implements OnFocusChangeListener,
OnClickListener {

private TextView tv_newFilm, tv_networkTV, tv_category, tv_myFavourite,
tv_application, tv_setting;
private ImageView img1, img2, img3, img4, img5, img_cursor;

private List<View> views; // Tab页面列表
private int offset = 0; // 动画图片偏移量
private int currIndex = 0; // 当前页卡编号
private int bmpW; // 动画图片宽度
private View view1, view2, view3, view4, view5, view6;

private ViewPager viewPager;
private MyViewPagerAdapter adapter;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


InitImageView();
InitViewPager();

}

public void init() {
tv_newFilm = (TextView) findViewById(R.id.tv_newFilm);
tv_networkTV = (TextView) findViewById(R.id.tv_networkTV);
tv_category = (TextView) findViewById(R.id.tv_category);
tv_myFavourite = (TextView) findViewById(R.id.tv_myFavourite);
tv_application = (TextView) findViewById(R.id.tv_application);
tv_setting = (TextView) findViewById(R.id.tv_setting);

img1 = (ImageView) findViewById(R.id.imageView1);
img2 = (ImageView) findViewById(R.id.imageView2);
img3 = (ImageView) findViewById(R.id.imageView3);
img4 = (ImageView) findViewById(R.id.imageView4);
img5 = (ImageView) findViewById(R.id.imageView5);
img_cursor = (ImageView) findViewById(R.id.cursor);

tv_newFilm.setOnFocusChangeListener(this);
tv_networkTV.setOnFocusChangeListener(this);
tv_category.setOnFocusChangeListener(this);
tv_myFavourite.setOnFocusChangeListener(this);
tv_application.setOnFocusChangeListener(this);
tv_setting.setOnFocusChangeListener(this);

img1.setOnClickListener(this);
img2.setOnClickListener(this);
img3.setOnClickListener(this);
img4.setOnClickListener(this);
img5.setOnClickListener(this);
}

private void InitViewPager() {
viewPager = (ViewPager) findViewById(R.id.viewPager);
views = new ArrayList<View>();
LayoutInflater inflater = getLayoutInflater();
view1 = inflater.inflate(R.layout.newfilm, null);
view2 = inflater.inflate(R.layout.networktv, null);
view3 = inflater.inflate(R.layout.category, null);
view4 = inflater.inflate(R.layout.myfavourite, null);
view5 = inflater.inflate(R.layout.application, null);
view6 = inflater.inflate(R.layout.mysetting, null);

views.add(view1);
views.add(view2);
views.add(view3);
views.add(view4);
views.add(view5);
views.add(view6);

viewPager.setAdapter(new MyViewPagerAdapter(views));
viewPager.setCurrentItem(0);
viewPager.setOnPageChangeListener(new MyOnPageChangeListener());
}

private void InitImageView() {
bmpW = BitmapFactory.decodeResource(getResources(),
R.drawable.title_selector).getWidth();// 获取图片宽度
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenW = dm.widthPixels;// 获取分辨率宽度
offset = (screenW / 3 - bmpW) / 2;// 计算偏移量
Matrix matrix = new Matrix();
matrix.postTranslate(offset, 0);
img_cursor.setImageMatrix(matrix);// 设置动画初始位置
}

public class MyViewPagerAdapter extends PagerAdapter {
private List<View> mListViews;

public MyViewPagerAdapter(List<View> mListViews) {
this.mListViews = mListViews;
}

@Override


public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mListViews.get(position));
}

@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(mListViews.get(position), 0);
return mListViews.get(position);
}

@Override
public int getCount() {
return mListViews.size();
}

@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
}

public class MyOnPageChangeListener implements OnPageChangeListener {

int one = offset * 2 + bmpW;// 页卡1 -> 页卡2 偏移量
int two = one * 2;// 页卡1 -> 页卡3 偏移量

public void onPageScrollStateChanged(int arg0) {

}

public void onPageScrolled(int arg0, float arg1, int arg2) {

}

public void onPageSelected(int arg0) {

Animation animation = new TranslateAnimation(one * currIndex, one
* arg0, 0, 0);// 显然这个比较简洁,只有一行代码。
currIndex = arg0;
animation.setFillAfter(true);// True:图片停在动画结束位置
animation.setDuration(300);
img_cursor.startAnimation(animation);
Toast.makeText(MainActivity.this,
"您选择了" + viewPager.getCurrentItem() + "页卡",
Toast.LENGTH_SHORT).show();
}

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(MainActivity.this, DetailActivity.class);

switch (v.getId()) {
case R.id.imageView1:
// img1.setAlpha(200);
startActivity(intent);
break;
case R.id.imageView2:
// img2.setAlpha(200);
startActivity(intent);
break;
case R.id.imageView3:
// img3.setAlpha(200);
startActivity(intent);
break;
case R.id.imageView4:
startActivity(intent);
break;
case R.id.imageView5:
startActivity(intent);
break;
default:
;
}
}

@Override
public void onFocusChange(View v, boolean hasFocus) {
switch (v.getId()) {
case R.id.tv_newFilm:
// tv_newFilm.setBackgroundResource(R.drawable.select);
tv_newFilm.requestFocus();
tv_newFilm.setAlpha(200);
tv_newFilm.setNextFocusRightId(R.id.tv_networkTV);
tv_newFilm.setNextFocusDownId(R.id.imageView1);

//
tv_newFilm.setNextFocusRightId(R.id.tv_networkTV);
case R.id.tv_networkTV:
tv_networkTV.requestFocus();
tv_networkTV.setNextFocusLeftId(R.id.tv_newFilm);
tv_networkTV.setNextFocusRightId(R.id.tv_category);
case R.id.tv_category:
tv_category.requestFocus();
tv_category.setNextFocusLeftId(R.id.tv_networkTV);
tv_category.setNextFocusRightId(R.id.tv_myFavourite);
case R.id.tv_myFavourite:
tv_myFavourite.requestFocus();
tv_myFavourite.setNextFocusLeftId(R.id.tv_category);
tv_myFavourite.setNextFocusRightId(R.id.tv_application);
case R.id.tv_application:
tv_application.requestFocus();
tv_application.setNextFocusLeftId(R.id.tv_myFavourite);
tv_application.setNextFocusRightId(R.id.tv_setting);
case R.id.tv_setting:
tv_setting.requestFocus();
tv_setting.setNextFocusLeftId(R.id.tv_application);
default:
;
}
}

// private class MyViewPagerAdapter extends FragmentPagerAdapter{
//
// public MyViewPagerAdapter() {
// super(getSupportFragmentManager());
// }
//
// @Override
// public Fragment getItem(int pageNumber) {
// switch(pageNumber){
// case 0:
// return new newFilmFragment();
// case 1:
// return new networkTVFragment();
//  case 2:
// return new categoryFragment();
// case 3:
//  return new myFavouriteFragment();
// case 4:
//  return new applicationFragment();
// case 5:
// return new mysettingFragment();
// default:
// return null;
// }
// }

}



一直是这个错误,运行就崩溃,,不知道怎么解决,求各位大神 android


[解决办法]
看错误提示应该是这个地方异常了。检查一下BitmapFactory.decodeResource
   private void InitImageView() {
        bmpW = BitmapFactory.decodeResource(getResources(),
                R.drawable.title_selector).getWidth();// 获取图片宽度
        DisplayMetrics dm = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(dm);
        int screenW = dm.widthPixels;// 获取分辨率宽度
        offset = (screenW / 3 - bmpW) / 2;// 计算偏移量
        Matrix matrix = new Matrix();
        matrix.postTranslate(offset, 0);
        img_cursor.setImageMatrix(matrix);// 设置动画初始位置
    }

[解决办法]

bmpW = BitmapFactory.decodeResource(getResources(),
                R.drawable.title_selector).getWidth();// 获取图片宽度

这里报空指针异常,检查一下,title_selector图片的位置放的对不对,等等