2012-01-16 4 views
0

이 클래스는 내 애플 리케이션에서 호출하는 대화 상자입니다.이 클래스는 센터에서 큰 검은 색 점이 있으며이 대화 상자에는 XML 파일이 필요하지 않습니다. seekbar를 스크롤하는 동안 방금 언급 한 점의 크기를 변경하려고하기 때문에이 대화 상자에 seekbar를 추가하고 싶습니다.XML없이 사용자 지정 대화 상자에 seekbar를 추가하는 방법

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 
    } 
}); 
를 만들어보십시오