Первые проблемы (переопределение onMeasure и onLayout)
Добавлено: 18 дек 2013, 16:44
Ну вот начались первые трудности. Суть такая:
Пишу программу где в зависимости от размеров мой класс унаследованный от LinearLayout должен заполнится разным количеством объектов. Насколько я понял для этого нужно переопределить в нем onLayout и onMeasure. Пока поиски в интернете не дали мне вразумительного ответа что как делать. Понимаю что я где то в корне что-то делаю не так, не работает даже пробное:
public class TwisterLayout extends LinearLayout {
Context context;
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public TwisterLayout(Context _context, AttributeSet attrs, int defStyle) {
super(_context, attrs, defStyle);
this.context=_context;
}
public TwisterLayout(Context _context, AttributeSet attrs) {
super(_context, attrs);
this.context=_context;
}
public TwisterLayout(Context _context) {
super(_context);
this.context=_context;
}
@Override
protected void onMeasure(int measureWidth, int measureHeight){
ImageView ivTest=new ImageView(context);
ivTest.setImageResource(R.drawable.dot);
LayoutParams wrap_content=new LayoutParams(100,100);
ivTest.setLayoutParams(wrap_content);
this.addView(ivTest);
setMeasuredDimension(measureWidth, measureHeight);
}
-----------------------
Если понятна суть вопроса подскажите как надо или хотя-бы где найти адекватную(понятную) информацию по этой теме.
Пишу программу где в зависимости от размеров мой класс унаследованный от LinearLayout должен заполнится разным количеством объектов. Насколько я понял для этого нужно переопределить в нем onLayout и onMeasure. Пока поиски в интернете не дали мне вразумительного ответа что как делать. Понимаю что я где то в корне что-то делаю не так, не работает даже пробное:
public class TwisterLayout extends LinearLayout {
Context context;
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public TwisterLayout(Context _context, AttributeSet attrs, int defStyle) {
super(_context, attrs, defStyle);
this.context=_context;
}
public TwisterLayout(Context _context, AttributeSet attrs) {
super(_context, attrs);
this.context=_context;
}
public TwisterLayout(Context _context) {
super(_context);
this.context=_context;
}
@Override
protected void onMeasure(int measureWidth, int measureHeight){
ImageView ivTest=new ImageView(context);
ivTest.setImageResource(R.drawable.dot);
LayoutParams wrap_content=new LayoutParams(100,100);
ivTest.setLayoutParams(wrap_content);
this.addView(ivTest);
setMeasuredDimension(measureWidth, measureHeight);
}
-----------------------
Если понятна суть вопроса подскажите как надо или хотя-бы где найти адекватную(понятную) информацию по этой теме.