5

请耐心等待,因为这是我的第一个应用程序。我的应用程序不是太具有革命性,但我想通过实现一些自定义选择器使其更加用户友好。例如,使用日历视图的日期选择器或水平流动的类似微调器的选择器(很像 SetCPU)。不幸的是,我什至不知道从哪里开始构建像这样的自定义 ui 组件。

4

4 回答 4

4

我想遵循骨架代码将有助于在您的应用程序中提供您想要的一些灵活性。

 /* Simple Dialog

                    Dialog dialog = new Dialog(this);
                    dialog.setTitle("Hello");
                    dialog.show();
      */

    /*    Inflating an layout as the Dialog

                    Dialog loginDialog = new Dialog(this);
                    View layout = LayoutInflater.from(this).inflate(R.layout.login, null);
                    loginDialog.setContentView(layout);
                    Button btn = (Button)(layout.findViewById(R.id.button1));
                    final EditText txt = (EditText) layout.findViewById(R.id.editText1);

                    btn.setOnClickListener(new View.OnClickListener() {

                        public void onClick(View v) {
                            // TODO Auto-generated method stub
                            //Toast.makeText(getApplicationContext(), txt.getText().toString(), Toast.LENGTH_SHORT).show();
                            txt.setText("Ahmedabad");
                        }
                    });
                    loginDialog.show();

            /* ProgreessBar Dialog (you need to implement thread)

        ProgressDialog dialog = new ProgressDialog(this);
                    dialog.setProgressStyle(2);

                    dialog.show();
    */


       /* Alert Dialog to alert a mesage or an error or customize exception like Enter the field, etc.

                AlertDialog dialog = new AlertDialog.Builder(this).create();
                    dialog.setMessage("Message");
                    dialog.setIcon(R.drawable.ic_launcher);
                    dialog.setTitle("Done");
                    dialog.show();
    */


/* ------------------- Binding array items into the spinner ---------------------------

        sp = (Spinner)findViewById(R.id.spinner1);
        String bloodgroups[]={
            "A +ve","B +ve","O +ve","AB +ve","A -ve","B -ve","O -ve","AB -ve"
        };
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout .simple_spinner_dropdown_item,bloodgroups); 
        sp.setAdapter(adapter);

*/

/* DatePicker Dialog Code: I have used a button whose click event bring datepicker dialog into focus

 Button btnselDate = (Button)findViewById(R.id.btnseldate); // date select button

// ----------------------------- DATE PICKER DIALOG PROMPT ---------------------
        btnselDate.setOnClickListener(new OnClickListener() {

        public void onClick(View arg0) {
            // TODO Auto-generated method stub
                showDialog(1);
            }
        });

 @Override
     protected Dialog onCreateDialog(int id) {
         DatePickerDialog dialog = new DatePickerDialog(this, new OnDateSetListener()
         {
            public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
            {
                ((EditText)findViewById(R.id.txtdate)).setText(dayOfMonth + "/" + monthOfYear + "/" + year);
            }           
         }, new GregorianCalendar().get(Calendar.YEAR), new GregorianCalendar().get(Calendar.MONTH), new GregorianCalendar().get(Calendar.DAY_OF_MONTH));
        return dialog;
     }


*/
于 2012-09-03T00:45:10.387 回答
2

Android 的默认小部件很简单,但通过混合使用它们,您可以构建自己的自定义小部件。 在此处阅读有关此内容的更多信息。

于 2012-08-30T20:05:39.123 回答
0

好吧,我现在决定放弃了,但对于其他任何人来说,这个网页确实帮助了我,至少让我了解它。

http://mindtherobot.com/blog/272/android-custom-ui-making-a-vintage-thermometer/

于 2012-09-04T00:07:55.237 回答
0

创建一个扩展 View 的自定义类。然后您可以设置大小并控制在 Canvas 上绘制的内容以及它将如何响应触摸事件。有很多关于创建“小部件”的例子。Reto Meiers 的书中有一个很好的例子,他创建了一个指南针。

于 2012-08-30T20:10:43.333 回答