2012-01-16 11 views
0

このクラスは私のアプリケーションで呼び出すダイアログです。このクラスは中心に大きな黒い点があり、XMLファイルは必要ありません。シークバーをスクロールしている間に私が今述べた点のサイズを変更したいので、このダイアログにシークバーを追加したいと思います。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 
    } 
}); 
を作成してみてください
関連する問題