0
페이지가있는만큼의 점들로 구성된 사용자 정의 가로 탐색 막대를 만들고 싶습니다.사용자 정의 탐색 막대 android
내 생각은 다음과 같습니다
- 지정 ListView에 클래스 점은
- 동적으로 사용자 지정 목록보기에 모든 점을 추가보기에서 확장 만들기
- ..
작성이 권리인가 그렇게하려면?
편집 : 당신은 ListView에 필요한 이유
public class NavigationBarLesson extends LinearLayout {
private LessonConfig config = LessonConfig.getInstance();
private ArrayList<NavigationCircle> navigationCircles;
private int pageCount;
public NavigationBarLesson(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public NavigationBarLesson(Context context) {
super(context);
init(context);
}
private void init(Context context) {
Log.i("init","yes");
pageCount = config.getLektionCount();
navigationCircles = new ArrayList<NavigationCircle>();
for(int i=0; i < pageCount; i++){
this.addView(new NavigationCircle(context));
}
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int width = View.MeasureSpec.getSize(widthMeasureSpec);
int height = View.MeasureSpec.getSize(heightMeasureSpec);
setMeasuredDimension(width, height);
}
}
public class NavigationCircle extends ImageView{
private static Bitmap img;
private Bitmap activeImg;
public NavigationCircle(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
public NavigationCircle(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public NavigationCircle(Context context) {
super(context);
init();
}
public void init() {
LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(0, 0, 5, 0);
this.setLayoutParams(lp);
this.setBackgroundResource(R.drawable.upcoming_pages);
}
public Bitmap getImg() {
return img;
}
public Bitmap getActiveImg() {
return this.activeImg;
}
}
나는 그것에 동의한다! –
좋아, 이제 for 루프를 사용하여 this.addView (new NavigationCircle (context)); 그래서 onDraw를 사용하지 않아도됩니다. 그러나이 특수 점을 다른 드로어 블 resource와 함께 그려야하기 때문에 어떻게이 점들의 현재 활성화되어있는 사용자 지정 ListView를 말할 수 있습니까? 내 생성자는 일단 호출 될 수 있기 때문에 ... 위의 예제 코드를 원래의 질문으로 편집합니다. – krackmoe
점을 그리는 동안 현재 '활성'또는 '중요'점의 ID가 포함 된 var (활성 인스턴스 int 변수)을 확인하고 다르게 그립니다. 또한 클릭 리스너를 추가하십시오 (모든 뷰에 클릭 수신기를 추가 할 수 있음, ImageView도 있음). 서로 다른 점에 다른 클릭 리스너를 추가 할 수 있으며 원할 때마다 일부 리스너를 비활성화 할 수도 있습니다. 또한 LinearLayout 또는 ListView 대신 HorizontalScrollView를 사용할 수 있습니다. 이는 내가 추측하는 용도에 적합합니다. 행운을 빕니다. – Yar