2012-01-16 89 views
0

這個類是我在我的應用程序中調用的對話框,它工作得很好,它的中心有一個大黑點,這個對話框不需要XML文件。我想添加一個seekbar到這個對話框,因爲我想改變我剛剛提到的點的大小,而我滾動seekbar。如何添加seekbar到沒有XML的自定義對話框

public class StrokePicker extends Dialog { 

StrokePicker strokepicker; 

public StrokePicker(Context context) { 
    super(context); 
} 

public class StrokePickerView extends View { 

    Paint Stroke; 
    SeekBar seekbar; 

    private static final int mCENTER= 32; 

    public StrokePickerView(Context context) { 
     super(context); 
     Stroke = new Paint(Paint.ANTI_ALIAS_FLAG); 
     Stroke.setStyle(Paint.Style.FILL); 
     Stroke.setColor(Color.BLACK); 

    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 
     Paint paint = new Paint(); 
     paint.setColor(Color.WHITE); 
     canvas.drawCircle(canvas.getWidth()/2-mCENTER, canvas.getHeight()/2-mCENTER*3, mCENTER, Stroke); 
    } 

    @Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     setMeasuredDimension(125 * 2, 100 * 2); 
    } 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    LinearLayout layout = new LinearLayout(getContext()); 
    SeekBar seekbar; 
    layout.setOrientation(LinearLayout.VERTICAL); 
    layout.setGravity(Gravity.CENTER); 
    layout.setPadding(10, 10, 10, 10); 
    layout.addView(new StrokePickerView(getContext()), 
      new LinearLayout.LayoutParams(
        LinearLayout.LayoutParams.WRAP_CONTENT, 
        LinearLayout.LayoutParams.WRAP_CONTENT)); 

    setContentView(layout); 
    setTitle("Grosor"); 
} 

}

我還沒有發現有關如何添加搜索條,而不使用XML信息,任何幫助將不勝感激。提前再見並感謝。

回答

1

試試這個創建SeekBarPreference

或者

builder.setView(View v); here is how you can use it. 

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
View layout = inflater.inflate(R.layout.yourLayoutId, (ViewGroup) findViewById(R.id.yourLayoutRoot)); 
AlertDialog.Builder builder = new AlertDialog.Builder(this) 
.setView(layout); 
AlertDialog alertDialog = builder.create(); 
alertDialog.show(); 
SeekBar sb = (SeekBar)layout.findViewById(R.id.yourSeekBar); 
sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser){ 
     //Do something here with new value 
    } 
});