精华内容
下载资源
问答
  • 一个Android进制转换器

    2012-06-02 21:01:34
    package com.com.twe.wew; import com.waps.AdView; import com.waps.AppConnect; import android.app.Activity; import android.os.Bundle; import android.view.Display; import android.view.Gravity; imp

    package com.com.twe.wew;
    import com.waps.AdView;
    import com.waps.AppConnect;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Display;
    import android.view.Gravity;
    import android.view.View;
    import android.view.Window;
    import android.view.WindowManager;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.LinearLayout;
    import android.widget.TextView;
    import android.widget.Toast;
    public class JZZH extends Activity {
     private Button js_jz;
     private Button CK;
     private Button jt4;
        private EditText two=null;
        private EditText eight=null;
        private EditText ten=null;
        private EditText sixteen=null;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

             //去掉标题
            requestWindowFeature(Window.FEATURE_NO_TITLE);
     //全屏     

    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
            setContentView(R.layout.jzzh);
           
          
     AppConnect.getInstance(this);
           
            LinearLayout container =(LinearLayout)findViewById(R.id.AdLinearLayout);
            new AdView(this,container).DisplayAd();
           
          //获取屏幕宽和高
            WindowManager w=getWindowManager();
            Display display=w.getDefaultDisplay();
            int width=display.getWidth();
     
            js_jz=(Button)findViewById(R.id.js_jz);
            CK=(Button)findViewById(R.id.ck);
            jt4=(Button)findViewById(R.id.jt4);
            two=(EditText)findViewById(R.id.two);
            eight=(EditText)findViewById(R.id.eight);
            ten=(EditText)findViewById(R.id.ten);
        sixteen=(EditText)findViewById(R.id.sixteen);            
           
            js_jz.setWidth(width/4);
            CK.setWidth(width/4);
            jt4.setWidth(width/4);
      
            js_jz.setOnClickListener(new ButtonListener());
            CK.setOnClickListener(new ButtonListener()); 
            jt4.setOnClickListener(new ButtonListener());
        } 
        class ButtonListener implements View.OnClickListener{
         public void onClick(View v) {
       // TODO Auto-generated method stub
          
       String  temp=null,num1=null,num2=null,num3=null,num4=null;
       switch(v.getId())
       {
       case R.id.js_jz:
       {   
        if(two.hasFocus())
        { 
         try
         {
         temp=two.getText().toString();     
         num3=Integer.valueOf(temp,2).toString();//将二进制转换为十进制;
         num2=Integer.toOctalString(Integer.parseInt(num3)); 
         num4=Integer.toHexString(Integer.parseInt(num3));
         eight.setText(num2);     
         ten.setText(num3);
         sixteen.setText(num4.toUpperCase()); 
         }
         catch(Exception e)
         {
          TTS("数据错误,请重新输入数据");
         }
       }
        else if(eight.hasFocus())
        { 
         try{
         temp=eight.getText().toString();
         num3=Integer.valueOf(temp,8).toString();
         num1=Integer.toBinaryString(Integer.parseInt(num3));
         num4=Integer.toHexString(Integer.parseInt(num3));
         two.setText(num1);
         ten.setText(num3);
         sixteen.setText(num4.toUpperCase());
         }
         catch(Exception e)
         {
          TTS("数据错误,请重新输入数据");

         }
        }
        else if(ten.hasFocus())
        {  
         try{
         num3=ten.getText().toString();
         num1=Integer.toBinaryString(Integer.parseInt(num3));
         num2=Integer.toOctalString(Integer.parseInt(num3));
         num4=Integer.toHexString(Integer.parseInt(num3));
         two.setText(num1);
            eight.setText(num2);
         sixteen.setText(num4.toUpperCase());
         }
         catch(Exception e)
         {
          TTS("数据错误,请重新输入数据");

         }
        } 
        else if(sixteen.hasFocus())
        {  
         try{
         temp=sixteen.getText().toString();
         num3=Integer.valueOf(temp,16).toString();
         num1=Integer.toBinaryString(Integer.parseInt(num3));
         num2=Integer.toOctalString(Integer.parseInt(num3));
         two.setText(num1);
         eight.setText(num2);
         ten.setText(num3);
         sixteen.setText(temp.toUpperCase());
         }
         catch(Exception e)
         {
          TTS("数据错误,请重新输入数据");

         }
        } 
       }
       break;
       case R.id.ck:
        two.setText("");
        eight.setText("");
           ten.setText("");
        sixteen.setText("");
       break;
       case R.id.jt4:
       if(two.hasFocus())
       {
           String a=two.getText().toString();
           String b=null;
           int c=a.length();
           if(c!=0)
           {
            b=a.substring(0,c-1);
                  two.setText(b);
           }
           else
        {
         two.setText("");
        }
       }
       else if(eight.hasFocus())
       {
           String a=eight.getText().toString();
           String b=null;
           int c=a.length();
           if(c!=0)
           {
            b=a.substring(0,c-1);
            eight.setText(b);
           }
           else
        {
            eight.setText("");
        }
       }
       else if(ten.hasFocus())
       {
           String a=ten.getText().toString();
           String b=null;
           int c=a.length();
           if(c!=0)
           {
            b=a.substring(0,c-1);
            ten.setText(b);
           }
           else
        {
            ten.setText("");
        }
       }
       else if(sixteen.hasFocus())
       {
           String a=sixteen.getText().toString();
           String b=null;
           int c=a.length();
           if(c!=0)
           {
            b=a.substring(0,c-1);
            sixteen.setText(b);
           }
           else
        {
            sixteen.setText("");
        }
       }
       }
      }     
     };
        public void TTS(String str)
        {
         View view=getLayoutInflater().inflate(R.layout.taost,null);
      TextView textView=(TextView)view.findViewById(R.id.toast);
      textView.setText(str);
      textView.setBackgroundResource(R.drawable.corner_view);
      Toast toast=new Toast(JZZH.this);
      toast.setDuration(Toast.LENGTH_LONG);
      toast.setGravity(Gravity.CENTER, 0, 0);
      toast.setView(view);
      toast.show();
        }
    }

    布局文件为jzzh.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="
    http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:background="@drawable/my_shape3"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
        <TextView    
            android:text="二进制" 
            android:textColor="#FF6347"
            android:textSize="25px"       
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"></TextView>
        <EditText
            android:layout_height="wrap_content" 
            android:id="@+id/two"
            android:background="@drawable/my_shape3"
            android:cursorVisible="false"
            android:textColor="#FF6347"
            android:textSize="25px"
            android:layout_width="match_parent"></EditText>
        <TextView
            android:text="八进制" 
            android:textColor="#FF6347"
            android:textSize="25px"       
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"></TextView>
        <EditText
            android:layout_height="wrap_content" 
            android:id="@+id/eight"
            android:background="@drawable/my_shape3"
            android:cursorVisible="false"
            android:textColor="#FF6347"
            android:textSize="25px"
            android:layout_width="match_parent"></EditText>
        <TextView
            android:text="十进制" 
            android:textColor="#FF6347"
            android:textSize="25px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"></TextView>
        <EditText
            android:layout_height="wrap_content" 
            android:id="@+id/ten"
            android:textColor="#FF6347"
            android:textSize="25px"
            android:background="@drawable/my_shape3"
            android:cursorVisible="false"
            android:layout_width="match_parent"></EditText>
        <TextView
            android:text="十六进制" 
            android:textColor="#FF6347"
            android:textSize="25px"     
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"></TextView>
        <EditText
            android:layout_height="wrap_content" 
            android:id="@+id/sixteen"
            android:background="@drawable/my_shape3"
            android:textColor="#FF6347"
            android:textSize="25px"
            android:cursorVisible="false"
            android:layout_width="match_parent"></EditText>
           
          
     <LinearLayout xmlns:android="
    http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >
       
         <Button
            android:text="←"
            android:id="@+id/jt4"
            android:textColor="#FF6347"
            android:layout_margin="3px" 
            android:background="@drawable/my_shape3"
            android:textSize="25px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"></Button>
           
        <Button
            android:text="C"
            android:id="@+id/ck"
            android:layout_margin="3px" 
            android:textColor="#FF6347"
            android:background="@drawable/my_shape3"
            android:textSize="25px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"></Button>
       
        <Button
            android:text="计算"   
            android:textColor="#FF6347"
            android:layout_margin="3px"   
            android:id="@+id/js_jz"
            android:background="@drawable/my_shape3"
            android:textSize="25px"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"></Button>
        
    </LinearLayout>
       <LinearLayout
    android:id="@+id/AdLinearLayout"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"/>
    </LinearLayout>

    展开全文
  • android SDK 10进制2进制转换器
  • 进制转换器2.0版,修改了一个在上一版本中的意外Bug,使程序能够应对各种错误输入,更加稳健的运行,欢迎大家下载到手机上进行使用。
  • Android下的小软件,输入十进制数据(整数或小数)能够转换成二进制, 八进制, 十六进制。将软件下载到手机上即可使用,欢迎大家测试!
  • 此程序是android下开发的二进制,八进制,十进制十六进制转换,另外一个tab可以直接忽略,想学习tabhost spinner的人也可以看一下
  • Qt5.5.1 for Android安卓版进制自动转换器,小编进制自动转换器后续产品,用Qt5.5.1编写安卓版程序,功能齐全,界面优美,易于学习,手机屏幕适应良好。 PS: 1、logo为百度图片,侵权勿怪 2、仅用于学习,切勿用于...
  • Android Studio简易进制转换计算器 1、问题描述。 设计并实现一个数制转换器,能够对输入的任- -进制类型的数值转换为指定的数制类型的数值。必须实现的数制类型有二进制、八进制、十进制和十六进制四种。 2、基本...

    Android Studio简易进制转换计算器

    1、问题描述。
    设计并实现一个数制转换器,能够对输入的任- -进制类型的数值转换为指定的数制类型的数值。必须实现的数制类型有二进制、八进制、十进制和十六进制四种。
    2、基本要求:
    (1)使用Spinner 控件,列出四种数制类型,即:二进制、八进制、十进制和十六进制;
    (2)“数值”输入框,不使用Android系统提供的输入面板,进行数值输入;且只能是整数数值;
    布局代码:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="进制转换器"
            android:textSize="35sp"
            android:textColor="#9900AA"/>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="输入数据:"
            android:textSize="30sp"
            android:textColor="#99CCAA"/>
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <TextView
                android:id="@+id/tv_1"
                android:layout_width="125dp"
                android:layout_height="35dp"
                android:text="进制类型:"
                android:textSize="25sp"
                android:textColor="#000"
                />
            <Spinner
                android:id="@+id/spinner1"
                android:layout_width="240dp"
                android:layout_height="35dp"
                android:textSize="30sp"
                />
        </LinearLayout>
        <EditText
            android:id="@+id/et_shuru"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"></EditText>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="输出数据:"
            android:textSize="30sp"
            android:textColor="#99CCAA"/>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <TextView
                android:id="@+id/tv_2"
                android:layout_width="125dp"
                android:layout_height="35dp"
                android:text="进制类型:"
                android:textSize="25sp"
                android:textColor="#000"
                />
            <Spinner
                android:id="@+id/spinner2"
                android:layout_width="240dp"
                android:layout_height="35dp"
                android:textSize="30sp"
                />
        </LinearLayout>
        <EditText
            android:id="@+id/et_shuchu"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"></EditText>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
        <Button
            android:id="@+id/btn_0"
            android:layout_width="70dp"
            android:layout_height="35dp"
            android:text="0"
            android:background="@drawable/btn_1"
            />
            <Button
                android:id="@+id/btn_1"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="1"
                android:background="@drawable/btn_1"
                />
            <Button
                android:id="@+id/btn_2"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="2"
                android:background="@drawable/btn_1"
                />
            <Button
                android:id="@+id/btn_3"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="3"
                android:background="@drawable/btn_1"
                />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <Button
                android:id="@+id/btn_4"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="4"
                android:background="@drawable/btn_1"
                />
            <Button
                android:id="@+id/btn_5"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="5"
                android:background="@drawable/btn_1"
                />
            <Button
                android:id="@+id/btn_6"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="6"
                android:background="@drawable/btn_1"
                />
            <Button
                android:id="@+id/btn_7"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="7"
                android:background="@drawable/btn_1"
                />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <Button
                android:id="@+id/btn_8"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="8"
                android:background="@drawable/btn_1"
                />
            <Button
                android:id="@+id/btn_9"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="9"
                android:background="@drawable/btn_1"
                />
            <Button
                android:id="@+id/btn_A"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="A"
                android:background="@drawable/btn_1"
                />
            <Button
                android:id="@+id/btn_B"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="B"
                android:background="@drawable/btn_1"
                />
    
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <Button
                android:id="@+id/btn_C"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="C"
                android:background="@drawable/btn_1"
                />
            <Button
                android:id="@+id/btn_D"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="D"
                android:background="@drawable/btn_1"
                />
            <Button
                android:id="@+id/btn_E"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="E"
                android:background="@drawable/btn_1"
                />
            <Button
                android:id="@+id/btn_F"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="F"
                android:background="@drawable/btn_1"
                />
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <Button
                android:id="@+id/btn_CE"
                android:layout_width="70dp"
                android:layout_height="35dp"
                android:text="CE"
                android:background="@drawable/btn_1"
                />
            <Button
                android:id="@+id/btn_js"
                android:layout_width="70dp"
                android:layout_height="40dp"
                android:text="计算"
                android:background="@drawable/btn_1"
                />
        </LinearLayout>
    </LinearLayout>
    
    
    
    
    
    

    按钮按压效果(btn_1.xml)代码

    在这里插入代码片<?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:state_pressed="true">
            <shape>
                <solid android:color="#CC7A00"/>
                <corners android:radius="10dp"/>
            </shape>
        </item>
        <item android:state_pressed="false">
            <shape>
                <solid android:color="#FF9900"/>
                <corners android:radius="10dp"/>
            </shape>
        </item>
    </selector>
    

    主代码(MainActivity)

    package com.example.hzljinzhi;
    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.ArrayAdapter;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Spinner;
    public class MainActivity extends AppCompatActivity {
        Spinner spinner1,spinner2;
        EditText et_shuru,et_shuchu;
        Button btn_CE,btn_js;
        int ids[]={R.id.btn_0,R.id.btn_1,R.id.btn_2,R.id.btn_3,R.id.btn_4,R.id.btn_5, R.id.btn_6,R.id.btn_7,
                R.id.btn_8,R.id.btn_9,R.id.btn_A,R.id.btn_B,R.id.btn_C,R.id.btn_D,R.id.btn_E,R.id.btn_F};
        String  temp=null,num1=null,num2=null,num3=null,num4=null;int k;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            btn_CE=findViewById(R.id.btn_CE);
            btn_js=findViewById( R.id.btn_js);
           btn_CE.setOnClickListener(new View.OnClickListener() {
               @Override
               public void onClick(View v) {
                   et_shuru.setText("");
                   et_shuchu.setText("");
               }
           });
            for(int i=0;i<ids.length;i++){
                Button btn = findViewById(ids[i]);
    
                if(btn != null)
                    btn.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            switch (v.getId()){
                               case  R.id.btn_0:
                                    et_shuru.setText(et_shuru.getText()+"0");
                                break;
                                case  R.id.btn_1:
                                    et_shuru.setText(et_shuru.getText()+"1");
                                    break;
                                case  R.id.btn_2:
                                    et_shuru.setText(et_shuru.getText()+"2");
                                    break;
                                case  R.id.btn_3:
                                    et_shuru.setText(et_shuru.getText()+"3");
                                    break;
                                case  R.id.btn_4:
                                    et_shuru.setText(et_shuru.getText()+"4");
                                    break;
                                case  R.id.btn_5:
                                    et_shuru.setText(et_shuru.getText()+"5");
                                    break;
                                case  R.id.btn_6:
                                    et_shuru.setText(et_shuru.getText()+"6");
                                    break;
                                case  R.id.btn_7:
                                    et_shuru.setText(et_shuru.getText()+"7");
                                    break;
                                case  R.id.btn_8:
                                    et_shuru.setText(et_shuru.getText()+"8");
                                    break;
                                case  R.id.btn_9:
                                    et_shuru.setText(et_shuru.getText()+"9");
                                    break;
                                case  R.id.btn_A:
                                    et_shuru.setText(et_shuru.getText()+"A");
                                    break;
                                case  R.id.btn_B:
                                    et_shuru.setText(et_shuru.getText()+"B");
                                    break;
                                case  R.id.btn_C:
                                    et_shuru.setText(et_shuru.getText()+"C");
                                    break;
                                case  R.id.btn_D:
                                    et_shuru.setText(et_shuru.getText()+"D");
                                    break;
                                case  R.id.btn_E:
                                    et_shuru.setText(et_shuru.getText()+"E");
                                    break;
                                case  R.id.btn_F:
                                    et_shuru.setText(et_shuru.getText()+"F");
                                    break;
                            }
                        }
                    });
            }
            et_shuru=findViewById(R.id.et_shuru);
            et_shuchu=findViewById(R.id.et_shuchu);
           spinner1=(Spinner)findViewById(R.id.spinner1);
           spinner2=(Spinner)findViewById(R.id.spinner2);
            //建立数据源
           String[] mltems = getResources().getStringArray(R.array.data);
            ArrayAdapter<String>adapter= new ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,mltems);
            adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            //绑定Adapter到控件
            spinner1.setAdapter(adapter);
            spinner1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) {
                    switch (pos){
                        case 0: k=2;setEnabled(2);break;
                        case 1: k=8;setEnabled(8);break;
                        case 2: k=10;setEnabled(10);break;
                        case 3: k=16;setEnabled(16);break;
                    }
                }
                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                }
            });
            spinner2.setAdapter(adapter);
            spinner2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, final int pos, long id) {
                    switch (pos){
                        case 0: btn_js.setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    temp = et_shuru.getText().toString();
                                    num3 = Integer.valueOf(temp, k).toString();//转换为十进制;
                                    num1 = Integer.toBinaryString(Integer.parseInt(num3));
                                    et_shuchu.setText(num1);
                                }
                            });break;
                        case 1: btn_js.setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    temp = et_shuru.getText().toString();
                                    num3 = Integer.valueOf(temp, k).toString();//转换为十进制;
                                    num2 = Integer.toOctalString(Integer.parseInt(num3));
                                    et_shuchu.setText(num2);
                                }
                            });break;
                        case 2: btn_js.setOnClickListener(new View.OnClickListener() {
                                @Override
                                public void onClick(View v) {
                                    temp = et_shuru.getText().toString();
                                    num3 = Integer.valueOf(temp, k).toString();//转换为十进制;
                                    et_shuchu.setText(num3);
                                }
                            });break;
                        case 3: btn_js.setOnClickListener(new View.OnClickListener() {
                            @Override
                            public void onClick(View v) {
                                temp = et_shuru.getText().toString();
                                num3 = Integer.valueOf(temp, k).toString();//转换为十进制;
                                num4 = Integer.toHexString(Integer.parseInt(num3));
                                et_shuchu.setText(num4);
                            }
                        });break;
                    }
                }
                @Override
                public void onNothingSelected(AdapterView<?> parent) {
                }
            });
        }
        public void setEnabled(int count){
            int i =0,size = Math.min(count,ids.length);
            for( i=0;i<size;i++){
                Button btn = findViewById(ids[i]);
                if(btn != null){
                    btn.setEnabled(true);
                }
            }
            for( i=size;i<ids.length;i++){
                Button btn = findViewById(ids[i]);
                if(btn != null){
                    btn.setEnabled(false);
                }
            }
        }
    }
    

    Spinner 控件的数据源(jinzhi.xml)

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string-array name="data">
            <item>二进制</item>
            <item>八进制</item>
            <item>十进制</item>
            <item>十六进制</item>
        </string-array>
    </resources>
    
    

    一个小白第一次写博客,如果大家发现我有什么错误和不足的地方,欢迎指导,谢谢!

    展开全文
  • Qt5.5.1进制自动转换器

    2017-09-04 23:24:55
    Qt5.5.1进制自动转换器,功能齐全,界面完美,易于学习。 PS: 1、logo为百度图片,侵权勿怪 2、仅用于学习,切勿用于商业用途 3、小编随后会分享Qt5.5.1 for Android的安卓版进制自动转换器
  • 数字转换器(适用于android设备) 要求 Python 3应该安装在您的计算机中。 Kivy库也应安装在您的计算机中。 要运行代码,请在各自的android设备上从此Repo中提供的apk文件中安装该应用。 我使用Python中的kivy库...
  • Android代码仲裁 介绍 根据查找安全漏洞: ://find-sec-bugs.github.io/改写,删除其中跟Android突破无关的漏洞,保留与Android相关的,同时增加其他一些检测项,从而形成针对Android的源码审计工具。同时将检测...
  • 开关(单位转换器Android应用程序 16个单位类别 金融计算器:拆分账单,货币转换器,比特币,GST计算器。 数学计算器:角度,面积,长度,质量,功率压力,体积。 计算机科学:二进制,ASCII等 拥有日常生活中最...
  • Android透明度转换器 百分比透明度转十六进制 十六进制转百分比
  • Android Studio APP

    2021-03-13 16:17:41
    基于Android Studio开发的手机APP进制转换器,适用于入门新手练习项目
  • 类加载 Java虚拟机类加载过程是把Class类文件加载到内存,并对Class文件中的数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型的过程。 在加载阶段,java虚拟机需要完成以下3件事: a....

    类加载器

    Java虚拟机类加载过程是把Class类文件加载到内存,并对Class文件中的数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型的过程。

    在加载阶段,java虚拟机需要完成以下3件事:

    a.通过一个类的全限定名来获取定义此类的二进制字节流。

    b.将定义类的二进制字节流所代表的静态存储结构转换为方法区的运行时数据结构

    c.在java堆中生成一个代表该类的java.lang.Class对象,作为方法区数据的访问入口。

    而类的加载过程是通过类加载器完成的。

    在Java中,任意一个类都需要由加载它的类加载器和这个类本身一同确定其在java虚拟机中的唯一性,即比较两个类是否相等,只有在这两个类是由同一个类加载器加载的前提之下才有意义,否则,即使这两个类来源于同一个Class类文件,只要加载它的类加载器不相同,那么这两个类必定不相等(这里的相等包括代表类的Class对象的equals()方法、isAssignableFrom()方法、isInstance()方法和instanceof关键字的结果)。

     

    加载类的开放性

    类加载器(ClassLoader)是Java语言的一项创新,也是Java流行的一个重要原因。在类加载的第一阶段“加载”过程中,需要通过一个类的全限定名来获取定义此类的二进制字节流,完成这个动作的代码块就是类加载器。这一动作是放在Java虚拟机外部去实现的,以便让应用程序自己决定如何获取所需的类。

    虚拟机规范并没有指明二进制字节流要从一个Class文件获取,或者说根本没有指明从哪里获取、怎样获取。这种开放使得Java在很多领域得到充分运用,例如:

    • 从ZIP包中读取,这很常见,成为JAR,EAR,WAR格式的基础
    • 从网络中获取,最典型的应用就是Applet
    • 运行时计算生成,最典型的是动态代理技术,在java.lang.reflect.Proxy中,就是用了ProxyGenerator.generateProxyClass来为特定接口生成形式为“*$Proxy”的代理类的二进制字节流
    • 有其他文件生成,最典型的JSP应用,由JSP文件生成对应的Class类 
      ……

    类加载器与类的唯一性

    类加载器虽然只用于实现类的加载动作,但是对于任意一个类,都需要由加载它的类加载器和这个类本身共同确立其在Java虚拟机中的唯一性。通俗的说,JVM中两个类是否“相等”,首先就必须是同一个类加载器加载的,否则,即使这两个类来源于同一个Class文件,被同一个虚拟机加载,只要类加载器不同,那么这两个类必定是不相等的。

    这里的“相等”,包括代表类的Class对象的equals()方法、isAssignableFrom()方法、isInstance()方法的返回结果,也包括使用instanceof关键字做对象所属关系判定等情况。

     

    Java类加载器双亲委派模型

    从Java虚拟机的角度来讲,只存在两种不同的类加载器:一种是启动类加载器(Bootstrap ClassLoader),这个类加载器使用C++语言实现,是虚拟机自身的一部分;另一种就是所有其他的类加载器,这些类加载器都由Java语言实现,独立于虚拟机外部,并且全都继承自抽象类java.lang.ClassLoader。

    绝大多数Java程序都会使用到以下3种系统提供的类加载器:

    启动类加载器
    扩展类加载器
    应用程序类加载器(也被称为系统类加载器)

    è¿éåå¾çæè¿°

    上图展示的类加载器之间的这种层次关系,称为类加载器的双亲委派模型。双亲委派模型要求除了顶层的启动类加载器外,其余的类加载都应当有自己的父类加载器。这里类加载器之间的父子关系一般不会以继承的关系来实现,而是都使用组合关系来复用父加载器的代码。

    双亲委派模型的工作过程是:如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个加载请求(它的搜索范围中没有找到所需的类)时,子加载器才会尝试自己去加载。

     

    Android中的类加载器

    BootClassLoader:BootClassLoader实例在Android系统启动的时候被创建,用于加载一些Android系统框架的类,其中就包括APP用到的一些系统类。 
    PathClassLoader:在应用启动的时候创建该类加载器实例,它是ClassLoader的简单实现,且只能加载本地的列表文件或目录,在Android中也就是已安装好的APK,它不能加载来自网络的类。Android中的系统类加载器与应用类加载器都是PathClassLoader。 
    IncrementalClassLoader:AS Instant Run用的,关闭该功能此ClassLoader将不会调用。 
    DexClassLoader:可以从包含dex文件的JAR或APK中来加载类,而这些代码源允许不必是安装应用的一部分,因此可用于动态加载。

    è¿éåå¾çæè¿°


    文章整理来自:

    https://blog.csdn.net/qq2653203/article/details/77371205 

    https://blog.csdn.net/u011068702/article/details/53248345

    展开全文
  • Android中的类加载

    2021-02-04 10:21:15
    2. 数据结构转换,将二进制流所代表的静态存储结构转化方法区的运行时的数据结构 3. 生成java.lang.Class对象,作为方法区这个类的各种数据的访问入口 加载类的二进制流有以下方法 1. 从zip包中读取,这就发展成...

    参考文章

    手把手教你实现最简单的插件化框架

    Android官方源码

    深入理解Android ClassLoader

    类的生命周期

    类的生命周期可以参看下图

    图片

    其中,加载阶段可以细分如下

    1. 加载类的二进制流

    2. 数据结构转换,将二进制流所代表的静态存储结构转化方法区的运行时的数据结构

    3. 生成java.lang.Class对象,作为方法区这个类的各种数据的访问入口

    加载类的二进制流有以下方法

    1. 从zip包中读取,这就发展成了我们常见的JAR、AAR依赖

    2. 运行时动态生成,这就是我们常见的动态代理技术,在java.reflect.Proxy中就是用ProxyGenerateProxyClass来为特定的接口生成代理的二进制流

    加下来就要详细说下Android的ClassLoader,不过讲之前,需要先介绍下双亲委托机制

    双亲委托机制

    其实很简单,一句话

    先自己的缓存里面找有没有加载过这个类,如果没有,找parent加载,如果parent也没有,就自己加载。

    要记住,这里的parent不是父类的意思,不是父类的意思,不是父类的意思。

        protected Class<?> loadClass(String name, boolean resolve)
            throws ClassNotFoundException
        {
                // First, check if the class has already been loaded
    //先从缓存中加没加载这个类
                Class<?> c = findLoadedClass(name);
                if (c == null) {
                    try {
                        if (parent != null) {
    //从parent中加载
                            c = parent.loadClass(name, false);
                        } else {
                            c = findBootstrapClassOrNull(name);
                        }
                    } catch (ClassNotFoundException e) {
                        // ClassNotFoundException thrown if class not found
                        // from the non-null parent class loader
                    }
    //加载不到,就自己加载
                    if (c == null) {
                        // If still not found, then invoke findClass in order
                        // to find the class.
                        c = findClass(name);
                    }
                }
                return c;
        }
    
    

    看一下findClass的实现,(BootClassLoader,大部分的ClassLoader的parent都是这个)

        @Override
        protected Class<?> findClass(String name) throws ClassNotFoundException {
            return Class.classForName(name, false, null);
        }
    

    哈哈,就是我们熟悉的classForName

    Android的ClassLoader

    是时候祭出这张广为人知的图了。

    图片

    先挨个介绍一下

    1. ClassLoader是一个抽象类,定义了ClassLoader的主要功能
    2. BootClassLoader是ClassLoader的子类(注意不是内部类,有些材料上说是内部类,是不对的),用于加载一些系统Framework层级需要的类,是Android平台上所有的ClassLoader的最终parent
    3. SecureClassLoader扩展了ClassLoader类,加入了权限方面的功能,加强了安全性
    4. URLClassLoader继承SecureClassLoader,用来通过URI路径从jar文件和文件夹中加载类和资源,在Android中基本无法使用
    5. BaseDexClassLoader是实现了Android ClassLoader的大部分功能
    6. PathClassLoader加载应用程序的类,会加载/data/app目录下的dex文件以及包含dex的apk文件或者java文件(有些材料上说他也会加载系统类,我没有找到,这里存疑
    7. DexClassLoader可以加载自定义dex文件以及包含dex的apk文件或jar文件,支持从SD卡进行加载。我们使用插件化技术的时候会用到
    8. InMemoryDexClassLoader用于加载内存中的dex文件

     

    看下代码

            logcat("Object classLoader:" + Any::class.java.classLoader + ":" + Any::class.java.classLoader?.parent)
            logcat("HomeActivity classLoader:" + HomeActivity::class.java.classLoader + ":" + HomeActivity::class.java.classLoader?.parent)
            logcat("activity classLoader:" + Activity::class.java.classLoader + ":" + Activity::class.java.classLoader?.parent)

    日志

    2021-02-04 11:36:32.015 3220-3220/com.xxx E/lklog: Object classLoader:java.lang.BootClassLoader@c38876d:null
    2021-02-04 11:36:32.015 3220-3220/com.xxx E/lklog: HomeActivity classLoader:dalvik.system.PathClassLoader[DexPathList[[zip file "/system/framework/android.test.mock.jar", zip file "/system/framework/android.test.runner.jar", zip file "/data/app/com.lukouapp-EotfkXsC9iBY-fX92CCqzg==/base.apk"],nativeLibraryDirectories=[/data/app/com.lukouapp-EotfkXsC9iBY-fX92CCqzg==/lib/arm, /data/app/com.lukouapp-EotfkXsC9iBY-fX92CCqzg==/base.apk!/lib/armeabi-v7a, /system/lib, /system/vendor/lib]]]:java.lang.BootClassLoader@c38876d
    2021-02-04 11:36:32.015 3220-3220/com.xxx E/lklog: activity classLoader:java.lang.BootClassLoader@c38876d:null

    从上面日志可以看到以下信息

    1. Any和Activity这类系统类的classloader都是BootClassLoader

    2. 自定义类的ClassLoader是PathClassLoader,但parent也是BootClassLoader,并且与上面的ClassLoader是同一个实例

    展开全文
  • ColorPickerView 是之前一个智能家居项目实战中所写的自定义控件,主要用于取得RGB 0~255范围的值,然后转换成十六进制0~FF的值,发送给网关控制RGB彩灯。参考的是网上一个朋友的源码写的,多的不说了,先看效果图 ...
  • 网络图片查看流程从网络上获取数据: 1. 发送请求:GET 2. 接收服务器端返回的响应数据使用代码实现的步骤: 1. 创建URL,打开一个HTTP的连接; 2.... 3.... 4. 把接收的二进制数据转换成图片模版代码//1.
  • 第一编写kl文件时先在盒子上输入getevent -v查看设备信息,设备信息里有vendor、product、version, 假如分别是xxxx...第二在盒子上输入getevent,获取遥控的16进制的码值然后转换成10进制 如: key 59 F1key 63...
  • 虚拟机设计团队把类加载过程中的通过一个类的全限定名来获取描述此类的二进制字节流这个动作放到JVM外部去实现,以便让应用程序自己决定如何去获取所需的类,实现这个动作的代码模块就是类加载;简单点说类加载...
  • ColorPickerView 是之前一个智能家居项目实战中所写的自定义控件,主要用于取得RGB 0~255范围的值,然后转换成十六进制0~FF的值,发送给网关控制RGB彩灯。参考的是网上一个朋友的源码写的,多的不说了,先看效果图
  • ColorPickerView 是之前一个智能家居项目实战中所写的自定义控件,主要用于取得RGB 0~255范围的值,然后转换成十六进制0~FF的值,发送给网关控制RGB彩灯。参考的是网上一个朋友的源码写的,多的不说了,先看效果图...
  • MTuner是用于Windows,PlayStation 4和3,Android和其他平台的C / C ++内存分析和内存泄漏查找。 MTuner利用一种新颖的方法进行内存分析和分析,保留了整个基于时间的内存操作历史记录。 通过查询整个数据集,...
  • Android工具箱APP源码分享:“一个工具箱”

    千次阅读 热门讨论 2019-02-17 17:01:41
    Android工具箱APP源码分享:“一个工具箱” 功能一览 ...进制转换(2/8/10/16) 名片二维码生成 GitHub下载地址解析 随机选择(选择困难症专用) [一个]每日一句和每日一图展示 key valu...
  • Android音频系统

    千次阅读 2017-08-24 17:37:54
    概述 基础音频知识 音频的录制存储和回放 采样定律 音频文件格式 Android系统中的音频框架 ...数模转换器ADC-&gt;二进制数据-&gt;渲染处理(音效调整/过滤)-&gt;音频数据压缩处理 编码采样定律
  • TensorFlow Lite 指南 TensorFlow Lite 是一组工具,可帮助开发者在移动设备、嵌入式设备和 IoT 设备上运行 TensorFlow 模型。... TensorFlow Lite 转换器,它可将 TensorFlow 模型转换为高效形式以供
  • 新版Android开发教程.rar

    千次下载 热门讨论 2010-12-14 15:49:11
    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
  • 源代码以二进制的形式存储在计算机中,读取时候也是读取二进制进行处理,然后显示给我们看 通过解释编译为机器码 由 CPU读取执行 java语言怎么工作? java将源代码转为字节码,放到java的JVM虚拟机中,然后CPU实现...
  • 但也有一些比较好玩的东西,比如界面设计,用xml非常直观,而且编译时转换成二进制文件,丝毫不影响速度。记得上次听讲座有个老外说不变的东西编译时一定要确定,只有不确定的东西才在运行时搞定,大概也是这个...

空空如也

空空如也

1 2 3 4
收藏数 78
精华内容 31
关键字:

android进制转换器