当前位置: 代码迷 >> Android >> Exampleapp窗口大小调剂
  详细解决方案

Exampleapp窗口大小调剂

热度:98   发布时间:2016-04-24 12:02:11.0
Exampleapp窗口大小调节
结构图:
基类:
package ch.halcyon.squareprogressbar.example;import android.app.Activity;import android.app.FragmentManager;import android.content.Context;import android.content.Intent;import android.content.res.Configuration;import android.net.Uri;import android.os.Bundle;import android.support.v4.app.ActionBarDrawerToggle;import android.support.v4.view.GravityCompat;import android.support.v4.widget.DrawerLayout;import android.text.Html;import android.view.LayoutInflater;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.BaseAdapter;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;import android.widget.ImageView;import android.widget.ListView;import android.widget.TextView;import java.util.ArrayList;import ch.halcyon.squareprogressbar.example.dialogs.CustomColourDialog;import ch.halcyon.squareprogressbar.example.dialogs.PercentDialog;import ch.halcyon.squareprogressbar.utils.ColourUtil;public class MainActivity extends Activity {    private DrawerLayout drawerLayout;    private ListView drawerListView;    private ActionBarDrawerToggle drawerToggle;    private CharSequence drawerTitle;    private CharSequence title;    public static String[] partTitle, descriptions;    private SquareFragment squareFragment;    private int lastPosition;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        FragmentManager fragmentManager = getFragmentManager();        squareFragment = new SquareFragment();        fragmentManager.beginTransaction()                .replace(ch.halcyon.squareprogressbar.example.R.id.content_frame, squareFragment).commit();        setContentView(ch.halcyon.squareprogressbar.example.R.layout.activity_main);        title = drawerTitle = getTitle();        partTitle = getResources().getStringArray(ch.halcyon.squareprogressbar.example.R.array.drawer_titel);        descriptions = getResources().getStringArray(                ch.halcyon.squareprogressbar.example.R.array.drawer_descriptions);        drawerLayout = (DrawerLayout) findViewById(ch.halcyon.squareprogressbar.example.R.id.drawer_layout);        drawerListView = (ListView) findViewById(ch.halcyon.squareprogressbar.example.R.id.left_drawer);        drawerLayout.setDrawerShadow(ch.halcyon.squareprogressbar.example.R.drawable.drawer_shadow,                GravityCompat.START);        BaseAdapter adapter = new BaseAdapter() {            //获得视图            @Override            public View getView(final int position, View convertView,                                ViewGroup parent) {                View item = convertView;                //首项                View headerItem = LayoutInflater.from(getApplicationContext())                        .inflate(ch.halcyon.squareprogressbar.example.R.layout.lv_header_layout, parent, false);                TextView title = (TextView) headerItem                        .findViewById(ch.halcyon.squareprogressbar.example.R.id.lv_list_hdr);                //自定义项目                View styleItem = LayoutInflater.from(getApplicationContext())                        .inflate(ch.halcyon.squareprogressbar.example.R.layout.lv_style, parent, false);                CheckBox box = (CheckBox) styleItem                        .findViewById(ch.halcyon.squareprogressbar.example.R.id.checkBox1);                View styleBoxItem = LayoutInflater                        .from(getApplicationContext()).inflate(                                ch.halcyon.squareprogressbar.example.R.layout.lv_style_box, parent, false);                final CheckBox styleBox = (CheckBox) styleBoxItem                        .findViewById(ch.halcyon.squareprogressbar.example.R.id.checkBox11);                ImageView styleImage = (ImageView) styleBoxItem                        .findViewById(ch.halcyon.squareprogressbar.example.R.id.imageView1);                // 链接到Github                View githubItem = LayoutInflater.from(getApplicationContext())                        .inflate(ch.halcyon.squareprogressbar.example.R.layout.lv_github, parent, false);                TextView githublink = (TextView) githubItem                        .findViewById(ch.halcyon.squareprogressbar.example.R.id.textView1);                // 链接到homepage                View signerItem = LayoutInflater.from(getApplicationContext())                        .inflate(ch.halcyon.squareprogressbar.example.R.layout.lv_signer, parent, false);                // 链接到Image                View imageItem = LayoutInflater.from(getApplicationContext())                        .inflate(ch.halcyon.squareprogressbar.example.R.layout.lv_image, parent, false);                ImageView imagePreview = (ImageView) imageItem                        .findViewById(ch.halcyon.squareprogressbar.example.R.id.imageView1);                TextView imageDesc = (TextView) imageItem                        .findViewById(ch.halcyon.squareprogressbar.example.R.id.imagetag);                                switch (position) {                    case 0:                        title.setText("Colour");                        return headerItem;                    case 11:                        Context context = getApplicationContext();                        item = LayoutInflater.from(context).inflate(                                ch.halcyon.squareprogressbar.example.R.layout.lv_colour_text, parent, false);                        item.setOnClickListener(new OnClickListener() {                            @Override                            public void onClick(View arg0) {                                final CustomColourDialog customColourDialog = new CustomColourDialog(                                        MainActivity.this);                                customColourDialog.show();                                customColourDialog.getSaveButton()                                        .setOnClickListener(new OnClickListener() {                                            @Override                                            public void onClick(View v) {                                                squareFragment.squareProgressBar                                                        .setColorRGB(customColourDialog                                                                .getChoosenRGB());                                                customColourDialog.dismiss();                                            }                                        });                                selectItem(position);                                lastPosition = position;                            }                        });                        TextView textView = (TextView) item                                .findViewById(ch.halcyon.squareprogressbar.example.R.id.colour_name_center);                        textView.setText("choose RGB colour");                        return item;                    case 12:                        title.setText("Style");                        return headerItem;                    case 13:                        box.setText(ch.halcyon.squareprogressbar.example.R.string.opacity);                        box.setChecked(squareFragment.squareProgressBar.isOpacity());                        box.setOnCheckedChangeListener(new OnCheckedChangeListener() {                            @Override                            public void onCheckedChanged(CompoundButton buttonView,                                                         boolean isChecked) {                                squareFragment.squareProgressBar                                        .setOpacity(isChecked);                            }                        });                        return styleItem;                    case 14:                        box.setText("Outline");                        box.setChecked(squareFragment.squareProgressBar.isOutline());                        box.setOnCheckedChangeListener(new OnCheckedChangeListener() {                            @Override                            public void onCheckedChanged(CompoundButton buttonView,                                                         boolean isChecked) {                                squareFragment.squareProgressBar                                        .drawOutline(isChecked);                            }                        });                        return styleItem;                    case 15:                        box.setText("Startline");                        box.setChecked(squareFragment.squareProgressBar                                .isStartline());                        box.setOnCheckedChangeListener(new OnCheckedChangeListener() {                            @Override                            public void onCheckedChanged(CompoundButton buttonView,                                                         boolean isChecked) {                                squareFragment.squareProgressBar                                        .drawStartline(isChecked);                            }                        });                        return styleItem;                    case 16:                        box.setText("Centerline");                        box.setChecked(squareFragment.squareProgressBar                                .isCenterline());                        box.setOnCheckedChangeListener(new OnCheckedChangeListener() {                            @Override                            public void onCheckedChanged(CompoundButton buttonView,                                                         boolean isChecked) {                                squareFragment.squareProgressBar                                        .drawCenterline(isChecked);                            }                        });                        return styleItem;                    case 17:                        styleBox.setText("Show percent");                        styleBox.setChecked(squareFragment.squareProgressBar                                .isShowProgress());                        styleBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {                            @Override                            public void onCheckedChanged(CompoundButton buttonView,                                                         boolean isChecked) {                                squareFragment.squareProgressBar                                        .showProgress(isChecked);                            }                        });                        styleImage.setOnClickListener(new OnClickListener() {                            @Override                            public void onClick(View arg0) {                                final PercentDialog percentDialog = new PercentDialog(                                        MainActivity.this);                                percentDialog.show();                                percentDialog                                        .setPercentStyle(squareFragment.squareProgressBar                                                .getPercentStyle());                                percentDialog.getSaveButton().setOnClickListener(                                        new OnClickListener() {                                            @Override                                            public void onClick(View v) {                                                squareFragment.squareProgressBar                                                        .setPercentStyle(percentDialog                                                                .getSettings());                                                percentDialog.dismiss();                                                styleBox.setChecked(true);                                                drawerLayout.closeDrawers();                                            }                                        });                            }                        });                        return styleBoxItem;                    case 18:                        box.setText("Grayscale");                        box.setChecked(squareFragment.squareProgressBar                                .isGreyscale());                        box.setOnCheckedChangeListener(new OnCheckedChangeListener() {                            @Override                            public void onCheckedChanged(CompoundButton buttonView,                                                         boolean isChecked) {                                squareFragment.squareProgressBar                                        .setImageGrayscale(isChecked);                            }                        });                        return styleItem;                    case 19:                        box.setText("Clear at 100%");                        box.setChecked(squareFragment.squareProgressBar                                .isClearOnHundred());                        box.setOnCheckedChangeListener(new OnCheckedChangeListener() {                            @Override                            public void onCheckedChanged(CompoundButton buttonView,                                                         boolean isChecked) {                                squareFragment.squareProgressBar                                        .setClearOnHundred(isChecked);                            }                        });                        return styleItem;                    case 20:                        box.setText("Indeterminate");                        box.setChecked(squareFragment.squareProgressBar                                .isIndeterminate());                        box.setOnCheckedChangeListener(new OnCheckedChangeListener() {                            @Override                            public void onCheckedChanged(CompoundButton buttonView,                                                         boolean isChecked) {                                squareFragment.squareProgressBar                                        .setIndeterminate(isChecked);                            }                        });                        return styleItem;                    case 21:                        title.setText("Image");                        return headerItem;                    case 22:                        imagePreview.setImageResource(ch.halcyon.squareprogressbar.example.R.drawable.blenheim_palece);                        imageDesc.setText("blenheim palace");                        imageItem.setOnClickListener(new OnClickListener() {                            @Override                            public void onClick(View v) {                                squareFragment.squareProgressBar                                        .setImage(ch.halcyon.squareprogressbar.example.R.drawable.blenheim_palece);                            }                        });                        return imageItem;                    case 23:                        imagePreview                                .setImageResource(ch.halcyon.squareprogressbar.example.R.drawable.millennium_stadium);                        imageDesc.setText("the millennium stadium");                        imageItem.setOnClickListener(new OnClickListener() {                            @Override                            public void onClick(View v) {                                squareFragment.squareProgressBar                                        .setImage(ch.halcyon.squareprogressbar.example.R.drawable.millennium_stadium);                            }                        });                        return imageItem;                    case 24:                        imagePreview.setImageResource(ch.halcyon.squareprogressbar.example.R.drawable.edinburgh);                        imageDesc.setText("carlton hill");                        imageItem.setOnClickListener(new OnClickListener() {                            @Override                            public void onClick(View v) {                                squareFragment.squareProgressBar                                        .setImage(ch.halcyon.squareprogressbar.example.R.drawable.edinburgh);                            }                        });                        return imageItem;                    case 25:                        imagePreview.setImageResource(ch.halcyon.squareprogressbar.example.R.drawable.holyroodpark);                        imageDesc.setText("holyrood park");                        imageItem.setOnClickListener(new OnClickListener() {                            @Override                            public void onClick(View v) {                                squareFragment.squareProgressBar                                        .setImage(ch.halcyon.squareprogressbar.example.R.drawable.holyroodpark);                            }                        });                        return imageItem;                    case 26:                        imagePreview.setImageResource(ch.halcyon.squareprogressbar.example.R.drawable.operahuset);                        imageDesc.setText("operahuset oslo");                        imageItem.setOnClickListener(new OnClickListener() {                            @Override                            public void onClick(View v) {                                squareFragment.squareProgressBar                                        .setImage(ch.halcyon.squareprogressbar.example.R.drawable.operahuset);                            }                        });                        return imageItem;                    case 27:                        title.setText("Source");                        return headerItem;                    case 28:                        String text = "<font color=#4183C4>mrwonderman</font>/<b><font color=#4183C4>android-square-progressbar</font></b> (v. 1.6.0)";                        githublink.setText(Html.fromHtml(text));                        githubItem.setOnClickListener(new OnClickListener() {                            @Override                            public void onClick(View arg0) {                                Intent browserIntent = new Intent(                                        Intent.ACTION_VIEW,                                        Uri.parse("https://github.com/mrwonderman/android-square-progressbar"));                                startActivity(browserIntent);                            }                        });                        return githubItem;                    case 29:                        signerItem.setOnClickListener(new OnClickListener() {                            @Override                            public void onClick(View arg0) {                                Intent browserIntent = new Intent(                                        Intent.ACTION_VIEW, Uri                                        .parse("http://www.halcyon.ch/"));                                startActivity(browserIntent);                            }                        });                        return signerItem;                    default:                        break;                }                //获得颜色数组                ArrayList<Integer> colourArray = ColourUtil.getColourArray();                if (position <= 10) {                    Context context = getApplicationContext();                    item = LayoutInflater.from(context).inflate(                            ch.halcyon.squareprogressbar.example.R.layout.lv_colour, parent, false);                    View colourView = item.findViewById(ch.halcyon.squareprogressbar.example.R.id.colour_preview);                    final Integer integer = colourArray.get(position - 1);                    colourView.setBackgroundColor(context.getResources()                            .getColor(integer));                    item.setOnClickListener(new OnClickListener() {                        @Override                        public void onClick(View arg0) {                            squareFragment.squareProgressBar                                    .setHoloColor(integer);                            selectItem(position);                            lastPosition = position;                        }                    });                    TextView textView = (TextView) item                            .findViewById(ch.halcyon.squareprogressbar.example.R.id.colour_name);                    textView.setText(getName(position - 1));                }                return item;            }                        @Override            public long getItemId(int position) {                return position;            }            @Override            public Object getItem(int position) {                return position;            }            @Override            public int getCount() {                return 30;            }        };        drawerListView.setAdapter(adapter);        drawerListView.setOnItemClickListener(new DrawerItemClickListener());        getActionBar().setDisplayHomeAsUpEnabled(true);        getActionBar().setHomeButtonEnabled(true);        drawerToggle = new ActionBarDrawerToggle(this, drawerLayout,                ch.halcyon.squareprogressbar.example.R.drawable.ic_drawer, ch.halcyon.squareprogressbar.example.R.string.drawer_open,                ch.halcyon.squareprogressbar.example.R.string.drawer_close) {            @Override            public void onDrawerClosed(View view) {                getActionBar().setTitle(title);                invalidateOptionsMenu();            }            //开启            @Override            public void onDrawerOpened(View drawerView) {                getActionBar().setTitle(drawerTitle);                invalidateOptionsMenu();            }        };        drawerLayout.setDrawerListener(drawerToggle);    }    //回调方法    @Override    public boolean onOptionsItemSelected(MenuItem item) {        if (drawerToggle.onOptionsItemSelected(item)) {            return true;        }        return true;    }    //选项菜单    @Override    public boolean onPrepareOptionsMenu(Menu menu) {        return super.onPrepareOptionsMenu(menu);    }    @Override    public void setTitle(CharSequence title) {        this.title = title;        getActionBar().setTitle(title);    }    @Override    protected void onPostCreate(Bundle savedInstanceState) {        super.onPostCreate(savedInstanceState);        drawerToggle.syncState();    }    //横竖屏转换    @Override    public void onConfigurationChanged(Configuration newConfig) {        super.onConfigurationChanged(newConfig);        drawerToggle.onConfigurationChanged(newConfig);    }    //获得名字的序列    private CharSequence getName(int position) {        switch (position) {            case 0:                return "holo_blue_bright";            case 1:                return "holo_blue_dark";            case 2:                return "holo_blue_light";            case 3:                return "holo_green_dark";            case 4:                return "holo_green_light";            case 5:                return "holo_orange_dark";            case 6:                return "holo_orange_light";            case 7:                return "holo_purple";            case 8:                return "holo_red_dark";            case 9:                return "holo_red_light";            default:                break;        }        return "";    }    private void selectItem(int position) {        drawerListView.setItemChecked(position, true);    }    //点击事件监听器    private class DrawerItemClickListener implements            ListView.OnItemClickListener {        @Override        public void onItemClick(AdapterView<?> parent, View view, int position,                                long id) {            if ((position != 0) && (position != 12) && (position != 21)                    && (position != 27)) {                selectItem(position);            } else {                selectItem(lastPosition);            }        }    }}
MainActivity
创建PreviewView类继承View
package ch.halcyon.squareprogressbar.example;import android.content.Context;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.Paint.Align;import android.graphics.Paint.Style;import android.graphics.Path;import android.util.AttributeSet;import android.view.View;public class PreviewView extends View {    private final Paint paintPaint;    //中心对齐    private Align center = Align.CENTER;    private float size = 150;    private boolean b = true;    //预览视图    public PreviewView(Context context) {        super(context);        paintPaint = new Paint();        paintPaint.setColor(context.getResources().getColor(                android.R.color.black));        paintPaint.setAntiAlias(true);        paintPaint.setStyle(Style.STROKE);    }    public PreviewView(Context context, AttributeSet attrs, int defStyle) {        super(context, attrs, defStyle);        paintPaint = new Paint();        paintPaint.setColor(context.getResources().getColor(                android.R.color.black));        paintPaint.setAntiAlias(true);        paintPaint.setStyle(Style.STROKE);    }    public PreviewView(Context context, AttributeSet attrs) {        super(context, attrs);        paintPaint = new Paint();        paintPaint.setColor(context.getResources().getColor(                android.R.color.black));        paintPaint.setAntiAlias(true);        paintPaint.setStyle(Style.STROKE);    }    @Override    protected void onDraw(Canvas canvas) {        super.onDraw(canvas);        Path path = new Path();        path.moveTo(0, 0);        path.lineTo(0, canvas.getWidth());        path.lineTo(canvas.getHeight(), canvas.getWidth());        path.lineTo(canvas.getHeight(), 0);        path.lineTo(0, 0);        canvas.drawPath(path, paintPaint);        paintPaint.setTextAlign(center);        paintPaint.setTextSize(Float.valueOf(String.valueOf(size)));        canvas.drawText(b ? "32%" : "32", canvas.getWidth() / 2, (int) ((canvas                .getHeight() / 2) - ((paintPaint.descent() + paintPaint                .ascent()) / 2)), paintPaint);    }    public void drawText(int size, Align center, boolean b) {        this.size = size;        this.center = center;        this.b = b;        this.invalidate();    }}
PreviewView
创建SquareFragment类继承Fragment
package ch.halcyon.squareprogressbar.example;import ch.halcyon.squareprogressbar.SquareProgressBar;import android.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.SeekBar;import android.widget.SeekBar.OnSeekBarChangeListener;import android.widget.TextView;public class SquareFragment extends Fragment {    public SquareProgressBar squareProgressBar;    @Override    public View onCreateView(LayoutInflater inflater, ViewGroup container,            Bundle savedInstanceState) {        View view = inflater.inflate(ch.halcyon.squareprogressbar.example.R.layout.square_layout, container, false);        squareProgressBar = (SquareProgressBar) view.findViewById(ch.halcyon.squareprogressbar.example.R.id.subi2);        squareProgressBar.setImage(ch.halcyon.squareprogressbar.example.R.drawable.blenheim_palece);        squareProgressBar.setColor("#C9C9C9");        squareProgressBar.setProgress(32);        squareProgressBar.setWidth(8);        final TextView progressView = (TextView) view                .findViewById(ch.halcyon.squareprogressbar.example.R.id.progressDisplay);        progressView.setText("32%");        SeekBar progressSeekBar = (SeekBar) view                .findViewById(ch.halcyon.squareprogressbar.example.R.id.progressSeekBar);        progressSeekBar                .setOnSeekBarChangeListener(new OnSeekBarChangeListener() {                    @Override                    public void onStopTrackingTouch(SeekBar seekBar) {                        // nothing to do                    }                    @Override                    public void onStartTrackingTouch(SeekBar seekBar) {                        // nothing to do                    }                    @Override                    public void onProgressChanged(SeekBar seekBar,                            int progress, boolean fromUser) {                        squareProgressBar.setProgress(progress);                        progressView.setText(progress + "%");                    }                });        SeekBar widthSeekBar = (SeekBar) view.findViewById(ch.halcyon.squareprogressbar.example.R.id.widthSeekBar);        widthSeekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {            @Override            public void onStopTrackingTouch(SeekBar seekBar) {                // nothing to do            }            @Override            public void onStartTrackingTouch(SeekBar seekBar) {                // nothing to do            }            @Override            public void onProgressChanged(SeekBar seekBar, int progress,                    boolean fromUser) {                squareProgressBar.setWidth(progress);            }        });        return view;    }}
SquareFragment

创建CustomColourDialog类并且继承Dialog:

package ch.halcyon.squareprogressbar.example.dialogs;import ch.halcyon.squareprogressbar.example.R;import android.app.Dialog;import android.content.Context;import android.graphics.Color;import android.graphics.drawable.ColorDrawable;import android.view.View;import android.view.Window;import android.widget.Button;import android.widget.SeekBar;import android.widget.SeekBar.OnSeekBarChangeListener;import android.widget.TextView;public class CustomColourDialog extends Dialog {    private final Button saveButton;    private SeekBar rSeekBar;    private SeekBar gSeekBar;    private SeekBar bSeekBar;    private int choosenRGB;    public CustomColourDialog(final Context context) {        super(context);        //舍去标题        requestWindowFeature(Window.FEATURE_NO_TITLE);        this.setContentView(R.layout.customcolourdialog);        this.setCancelable(false);        Button closeButton = (Button) this                .findViewById(R.id.returnColourDialog);        closeButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                dismiss();            }        });        saveButton = (Button) this.findViewById(R.id.shareColourDialog);        rSeekBar = (SeekBar) findViewById(R.id.rSeekBar);        rSeekBar.setMax(255);        rSeekBar.setProgress(111);        rSeekBar.setOnSeekBarChangeListener(rgbOnSeekBarListener());        gSeekBar = (SeekBar) findViewById(R.id.gSeekBar);        gSeekBar.setMax(255);        gSeekBar.setProgress(111);        gSeekBar.setOnSeekBarChangeListener(rgbOnSeekBarListener());        bSeekBar = (SeekBar) findViewById(R.id.bSeekBar);        bSeekBar.setMax(255);        bSeekBar.setProgress(111);        bSeekBar.setOnSeekBarChangeListener(rgbOnSeekBarListener());        calculateRGB();            }    private OnSeekBarChangeListener rgbOnSeekBarListener() {        return new OnSeekBarChangeListener() {            @Override            public void onStopTrackingTouch(SeekBar arg0) {                // nothing to do =)            }            @Override            public void onStartTrackingTouch(SeekBar arg0) {                // nothing to do =)            }            @Override            public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {                calculateRGB();            }        };    }    public Button getSaveButton() {        return saveButton;    }    //计算颜色属性值    private void calculateRGB() {        int r = rSeekBar.getProgress();        int g = gSeekBar.getProgress();        int b = bSeekBar.getProgress();        ((TextView) findViewById(R.id.rgbText)).setText("(" + r + "," + g + ","                + b + ")");        choosenRGB = Color.rgb(r, g, b);        getWindow().setBackgroundDrawable(new ColorDrawable(choosenRGB));    }    /**     * Returns the Color which was chosen in the Dialog.     *      * @return the chosen RGB-colour.     */    public int getChoosenRGB() {        return choosenRGB;    }}
CustomColourDialog
创建PercentDialog类并且继承Dialog:
package ch.halcyon.squareprogressbar.example.dialogs;import ch.halcyon.squareprogressbar.example.PreviewView;import ch.halcyon.squareprogressbar.utils.PercentStyle;import ch.halcyon.squareprogressbar.example.R;import android.app.Dialog;import android.content.Context;import android.graphics.Paint.Align;import android.view.View;import android.view.Window;import android.widget.AdapterView;import android.widget.AdapterView.OnItemSelectedListener;import android.widget.ArrayAdapter;import android.widget.Button;import android.widget.CheckBox;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;import android.widget.SeekBar;import android.widget.SeekBar.OnSeekBarChangeListener;import android.widget.Spinner;import android.widget.TextView;public class PercentDialog extends Dialog {    private final Spinner spinner;    private final CheckBox box;    private final Button saveButton;    private final SeekBar bar;    private int size;    private final PreviewView previewView;    public PercentDialog(final Context context) {        super(context);        requestWindowFeature(Window.FEATURE_NO_TITLE);        this.setContentView(R.layout.percentdialog);        this.setCancelable(false);        spinner = (Spinner) this.findViewById(R.id.spinner1);        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(                context, R.array.alignstyle,                android.R.layout.simple_spinner_item);        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);        spinner.setAdapter(adapter);        previewView = (PreviewView) findViewById(R.id.previewView1);        spinner.setOnItemSelectedListener(new OnItemSelectedListener() {            @Override            public void onItemSelected(AdapterView<?> arg0, View arg1,                    int arg2, long arg3) {                redrawPreview();            }            @Override            public void onNothingSelected(AdapterView<?> arg0) {                // nothing to do =)            }        });        Button closeButton = (Button) this.findViewById(R.id.returnDialog);        closeButton.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                dismiss();            }        });        saveButton = (Button) this.findViewById(R.id.shareDialog);        final TextView progress = (TextView) findViewById(R.id.textView3);        bar = (SeekBar) findViewById(R.id.textSize);        bar.setMax(400);        bar.setProgress(125);        bar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {            @Override            public void onStopTrackingTouch(SeekBar arg0) {                // nothing to do =)            }            @Override            public void onStartTrackingTouch(SeekBar arg0) {                // nothing to do =)            }            @Override            public void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {                size = arg1;                progress.setText(arg1 + " dp");                redrawPreview();            }        });        box = (CheckBox) this.findViewById(R.id.checkBox1);        box.setOnCheckedChangeListener(new OnCheckedChangeListener() {            @Override            public void onCheckedChanged(CompoundButton buttonView,                    boolean isChecked) {                redrawPreview();            }        });    }    public PercentStyle getSettings() {        return new PercentStyle(Align.valueOf((String) spinner                .getSelectedItem()), Float.valueOf(bar.getProgress()),                box.isChecked());    }    public Button getSaveButton() {        return saveButton;    }    private Align returnAlign(int position) {        switch (position) {        case 0:            return Align.CENTER;        case 1:            return Align.RIGHT;        case 2:            return Align.LEFT;        default:            return Align.CENTER;        }    }    private void redrawPreview() {        previewView                .drawText(size, returnAlign(spinner.getSelectedItemPosition()),                        box.isChecked());    }    public void setPercentStyle(PercentStyle settings) {        switch (settings.getAlign()) {        case CENTER:            spinner.setSelection(0);            break;        case RIGHT:            spinner.setSelection(1);            break;        case LEFT:            spinner.setSelection(2);            break;        default:            spinner.setSelection(0);            break;        }        bar.setProgress(Math.round(settings.getTextSize()));        box.setChecked(settings.isPercentSign());    }}
PercentDialog

 

  相关解决方案