【问题标题】:How to pass the Different datas to webservice according to ScreenSize如何根据屏幕大小将不同的数据集传递给 Web 服务
【发布时间】:2012-02-23 12:22:27
【问题描述】:

我需要根据 ScreenSize 将不同的数据传递给 webservice 例如:

if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE)
        {  

        DeviceType=2;

     }
    else if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL)
    {     

        DeviceType=1;
    } 
    else if ((getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) 
    {     
            DeviceType=1;
    }
    else
    {
        DeviceType=2;
     }

我这样做了,但不幸的是我没有得到正确的值,我将 DeviceType 设为 0, 这只发生在任何事件触发时......因为我需要在我的应用程序启动时很快显示来自网络服务的图像,任何想法!!!

【问题讨论】:

    标签: android web-services android-layout android-intent android-emulator


    【解决方案1】:

    //确定屏幕大小

    if ((getResources().getConfiguration().screenLayout &      Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) {     
        Toast.makeText(this, "Large screen",Toast.LENGTH_LONG).show();
    
    }
    else if ((getResources().getConfiguration().screenLayout &      Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL) {     
        Toast.makeText(this, "Normal sized screen" , Toast.LENGTH_LONG).show();
    
    } 
    else if ((getResources().getConfiguration().screenLayout &      Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) {     
        Toast.makeText(this, "Small sized screen" , Toast.LENGTH_LONG).show();
    }
    else {
        Toast.makeText(this, "Screen size is neither large, normal or small" , Toast.LENGTH_LONG).show();
    }
    

    //确定密度

    DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);
        int density = metrics.densityDpi;
    
        if (density==DisplayMetrics.DENSITY_HIGH) {
            Toast.makeText(this, "DENSITY_HIGH... Density is " + String.valueOf(density),  Toast.LENGTH_LONG).show();
        }
        else if (density==DisplayMetrics.DENSITY_MEDIUM) {
            Toast.makeText(this, "DENSITY_MEDIUM... Density is " + String.valueOf(density),  Toast.LENGTH_LONG).show();
        }
        else if (density==DisplayMetrics.DENSITY_LOW) {
            Toast.makeText(this, "DENSITY_LOW... Density is " + String.valueOf(density),  Toast.LENGTH_LONG).show();
        }
        else {
            Toast.makeText(this, "Density is neither HIGH, MEDIUM OR LOW.  Density is " + String.valueOf(density),  Toast.LENGTH_LONG).show();
        }
    

    【讨论】:

    • @Padma kumar:我试过这个但没用,Avi kumar 的回答有效
    • @kalai RU 在设备或模拟器中运行。如果是哪个设备?
    • 如果你使用硬编码的值,这不会是一个通用的构建。
    【解决方案2】:

    Kalai 我使用此代码根据屏幕大小设置布局尝试这种方式可能会对您有所帮助

    Display display = this.getWindowManager().getDefaultDisplay();
    
              if(display.getHeight()==480&&display.getWidth()==320){
                  setContentView(new Grapic_m(this));
    
              }
    
              else if(display.getHeight()==800&&display.getWidth()==480){
                 Grapic g=new Grapic(this);
              setContentView(g);
    
                  }             
              else if(display.getHeight()==320&&display.getWidth()==240){
    
                  setContentView(new Grapic_s(this));
    

    【讨论】:

    猜你喜欢
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多