2013-11-23 星期六

剧集下载要求弹出对话框,以网格形式将剧集显示出来。

使用android对话框时,有以下几个问题需要注意,先看代码片段

public AnthologyDialog(Context context, Display display, AnthologyListener anthologyListener) {        super(context, R.style.AnthologyDialog);        this.anthologyListener = anthologyListener;        this.context = context;        this.display = display;    }                                                                                                                         @SuppressWarnings("deprecation")    private void setDialogSize() {         WindowManager.LayoutParams lp = getWindow().getAttributes();         lp.height = (int) (display.getHeight() * 0.8); //高度设置为屏幕的0.8         lp.width = (int) (display.getWidth() * 0.8); //宽度设置为屏幕的0.8         lp.alpha = 1f;//设置透明度         this.getWindow().setAttributes(lp);         Logger.v(TAG, "@setDialogSize. width:"+lp.width+", height:"+lp.height);    }                                                                                                                         @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.dialog_anthology);        this.setDialogSize();    }}

1. 黑色边框的解决办法是在styles.xml文件中添加

2. 设定对话框大小:在onCreate方法中且设定ContentView后面修改LayoutParams对象的宽和高。

@SuppressWarnings("deprecation")private void setDialogSize() {     WindowManager.LayoutParams lp = getWindow().getAttributes();     lp.height = (int) (display.getHeight() * 0.8); //高度设置为屏幕的0.8     lp.width = (int) (display.getWidth() * 0.8); //宽度设置为屏幕的0.8     lp.alpha = 1f;//设置透明度     this.getWindow().setAttributes(lp);     Logger.v(TAG, "@setDialogSize. width:"+lp.width+", height:"+lp.height);}

剧集对象都存在列表对象中。根据index字段对剧集对象列表进行排序。

需要对ListView列表中的对象进行排序:

private static class MyComparator implements Comparator
{ @Override public int compare(AnthologyData lhs, AnthologyData rhs) { return lhs.getIndex() - rhs.getIndex(); }}private void sortAnthologyList() { MyComparator comparator = new MyComparator(); Collections.sort(anthologyList, comparator);}

用lhs减去rhs表示升序排序。反之是降序排序。

private static class MyComparator implements Comparator
{ @Override public int compare(AnthologyData lhs, AnthologyData rhs) { return rhs.getIndex() - lhs.getIndex(); }}

参考资料:

1. android自定义dialog

2. android自定义dialog

3. 设定对话框的尺寸

4. 设定对话框的尺寸

5. Android自定义对话框(Dialog)位置,大小

6. Android自定义对话框的大小

7. java List 排序 Collections.sort() 对 List 排序