Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 安卓——为什么我可以';你不能直接看到风景吗?_Android - Fatal编程技术网

Android 安卓——为什么我可以';你不能直接看到风景吗?

Android 安卓——为什么我可以';你不能直接看到风景吗?,android,Android,我构建了一个名为myview的新视图,包括OnDraw部分 我尝试在Oncreate中使用setContentView(myview),但是失败了,显示了一些错误 然后我使用addview函数将此视图添加到我的原始布局中,并setContent(R.layout.main) 最后我可以在屏幕上看到结果 出了什么问题?为什么我不能直接使用setContentView(myview)来显示结果 public void onCreate(Bundle savedInstanceState) {

我构建了一个名为myview的新视图,包括
OnDraw
部分

我尝试在
Oncreate
中使用
setContentView(myview)
,但是失败了,显示了一些错误

然后我使用
addview
函数将此视图添加到我的原始布局中,并
setContent(R.layout.main)

最后我可以在屏幕上看到结果

出了什么问题?为什么我不能直接使用
setContentView(myview)
来显示结果

 public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);   
       myview2=new MyView2(this);
       setContentView(R.layout.main2);
       RelativeLayout layout= ( RelativeLayout )findViewById(R.id.dashpage);        
       layout.addView(myview2);

    }

class MyView2 extends View{

        public MyView2(Context context) { 
            super(context);
        }
        Bitmap themometer = BitmapFactory.decodeResource(getResources(),  
                   R.drawable.the);
        Matrix matrix2 = new Matrix();
        Bitmap themometerbmp = Bitmap.createBitmap(themometer, 0, 0, themometer.getWidth(),  
                themometer.getHeight(), matrix2, true);

        public void onDraw(Canvas canvas2)
        {
            canvas2.drawBitmap(themometerbmp,90,5,null);
        }
    }

我认为
setContentView
不是问题所在。您正在尝试使用可拖动的。试试这个:

在MyView2中添加一个函数:

public Bitmap getBitmapFromDrawable (Drawable drawable) {
    Bitmap bitmap = Bitmap.createBitmap(drawable.getIntrinsicWidth(), 
        drawable.getIntrinsicHeight(), Config.ARGB_8888);
    Canvas canvas = new Canvas(bitmap); 
    drawable.setBounds(0, 0, canvas.getWidth(), canvas.getHeight());
    drawable.draw(canvas);

    return bitmap;
}
然后,而不是

Bitmap themometer = BitmapFactory.decodeResource(getResources(), R.drawable.the);
使用


正如mice建议的那样,您需要提供更多细节和代码。顺便问一下,你是在夸大你的观点吗?错误是系统会立即崩溃。稍后,我将在这里发布我的代码。它可以正常工作,但是,我的意思是,我必须将视图添加到布局中,而不是直接使用setContentView应用视图。您可以发布与崩溃相关的LogCat输出吗?还有,为什么不使用简单的ImageView来代替您的视图呢?
Bitmap themometer = getBitmapFromDrawable(getDrawable(R.drawable.the));