Son Forum Aktiviteleri
6Seekbar'ın sadece thumb image ile değiştirilmesi sağlama
Horizontal bir listview içinde vertical bir seekBar kullanıyorum. Seekbar da default olarak progressDrawable alanında herhangi bir yere dokununca OnSeekBarChangeListener event tetiklenmekte ve thumb image dokunulan yere konumlanmakta. Horizontal listview de sağa veya sola scroll yapmaya çalışınca seekBar a dokunulduğu için değeri değişiyor. Ben sadece thumb image a dokunup değerinin değiştirilmesini istiyorum. Yani seekbar da thumb image dışında herhangi bir yere dokunulunca değerinin sabit kalması gerekiyor. Bunu nasıl engelleyebiliriz. Teşekkürler.
[code]
public class VerticalSeekBar extends SeekBar {
public VerticalSeekBar(Context context) {
super(context);
}
public VerticalSeekBar(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public VerticalSeekBar(Context context, AttributeSet attrs) {
super(context, attrs);
}
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(h, w, oldh, oldw);
}
@Override
protected synchronized void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(heightMeasureSpec, widthMeasureSpec);
setMeasuredDimension(getMeasuredHeight(), getMeasuredWidth());
}
protected void onDraw(Canvas c) {
c.rotate(-90);
c.translate(-getHeight(),0);
super.onDraw(c);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (!isEnabled()) {
return false;
}
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_MOVE:
int i=0;
i=getMax() - (int) (getMax() * event.getY() / getHeight());
setProgress(i);
onSizeChanged(getWidth(), getHeight(), 0, 0);
break;
case MotionEvent.ACTION_CANCEL:
break;
}
return true;
}
Drawable mThumb;
@Override
public void setThumb(Drawable thumb) {
super.setThumb(thumb);
mThumb = thumb;
}
public Drawable getSeekBarThumb() {
return mThumb;
}
public void updateThumb(){
onSizeChanged(getWidth(), getHeight(), 0, 0);
}
}
[/code]
Bir proje içinden birden fazla uygulamayı yayınlama
Merhaba,
Ekran tasarımları ve kodu aynı olan fakat arka plan rengi, resimleri, stringlerin içeriği, fontu vb. görsel kısımları her müşteri için farklı olan, yani templete şeklinde bir mobil uygulama yapmak istiyorum. Projeyi nasıl yapılandırmak gerekiyor?
Bir android veya ios projesi içinde birden fazla müşteriye ait içerik olacak fakat uygulamayı GooglePlay ve AppStore da yayınlarken her müşteri için ayrı bir uygulama yüklenmesi mi gerekiyor yoksa tek seferde bunu yapabilirmiyiz? Yani her müşteri kendi uygulamasını kendi logo ve ismiyle marketlerde görebilmeli ve indirebilmeli.
Android multiple Screen
layout-large 7" tabletler, layout-xlarge ise 10" tabletlerin kullandığı klasörlerdir. Eğer uygulamanın minSdk android 3.2 ise yeni klasörleme sistemi şu şekilde:
layout smartphonelar için
layout-sw600dp 7" tablet
layout-sw720dp 10" tablet
Daha detaylı bilgiyi buradan bulabilirsin: http://developer.android.com/guide/practices/screens_support.html
scroolview içerisinde listview oluğunda scrool çalışmıyor?
Listview ve ScrollView her ikiside vertical olarak scroll özelliğine sahip olduğundan layout.xml içerisinde uyarı veriyordur. Fakat bu şekilde kullanmak istiyorsan [code]
public class HelperScrollView {
public static void getListViewSize(ListView myListView) {
ListAdapter myListAdapter = myListView.getAdapter();
if (myListAdapter == null) {
//do nothing return null
return;
}
//set listAdapter in loop for getting final size
int totalHeight = 0;
for (int size = 0; size < myListAdapter.getCount(); size++) {
View listItem = myListAdapter.getView(size, null, myListView);
listItem.measure(0, 0);
totalHeight += listItem.getMeasuredHeight();
}
//setting listview item in adapter
ViewGroup.LayoutParams params = myListView.getLayoutParams();
params.height = totalHeight + (myListView.getDividerHeight() * (myListAdapter.getCount()));
myListView.setLayoutParams(params);
}
}
[/code]
şeklinde bir class tanımlayıp, Activity içinde listview e setAdapter yaptıktan sonra HelperScrollView.getListViewSize(listview) çağırarak listview height değerini sabitleyebilir ve en dıştaki scrollview ile scroll yapabilirsin.
Seekbar'ın sadece thumb image ile değiştirilmesi sağlama
Sorunumu aşağıdaki şekilde çözebildim, belki ihtiyacı olan olabilir. Touch yapılan yer thumb image dışında ise işlem yaptırmıyorum.
holder.vertical_seekBar.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_MOVE ||
event.getAction() == MotionEvent.ACTION_UP ||
event.getAction() == MotionEvent.ACTION_DOWN){
Rect seekBarThumbRect = holder.vertical_seekBar.getSeekBarThumb().getBounds();
int seekBarHeight = holder.vertical_seekBar.getHeight();
if(seekBarThumbRect.left - (seekBarThumbRect.right - seekBarThumbRect.left) / 2 < (Math.abs(seekBarHeight - event.getY())) &&
seekBarThumbRect.right + (seekBarThumbRect.right - seekBarThumbRect.left) / 2 > (Math.abs(seekBarHeight - event.getY())) &&
seekBarThumbRect.top < event.getX() &&
seekBarThumbRect.bottom > event.getX())
return false;
}
return true;
}
});
Eclipse Layout Sorunu bilgili kişiler yardım
layout içinde yeni bir xml oluşturmak için: layout dosyasına sağ tıklayıp new > other açılan pencereden "Android xml layout file" seçip, ismini girmen yeterli.