2014-11-17 3 views
0

im пытается создать диалог общего доступа. в этом диалоговом окне совместного доступа У меня есть facebook, whatsapp, mail и многое другое.изменить фон просмотров при наведении внутри диалогового окна

im пытается сделать фон каждого вида изменяться при касании, чтобы указать точечный. до сих пор без проблем. проблема заключается в том, что я также хочу, чтобы пользователь перемещался пальцем в другой вариант, и когда он делает это, предыдущий фон возвращается к его первоначальному цвету, а новый фон фонового изображения меняется.

Я просто не могу получить событие наведения вообще, и я не мог вызвать другой onTouchEvent, пока первый еще жив.

это мой код до сих пор:

public class customDialogFragment1 extends DialogFragment { 


public customDialogFragment1() { 
} 

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 

    postShareUrl=getActivity().getResources().getString(R.string.servicePostShareUrl); 
    id=getArguments().getString("body"); 
    postTitle=getArguments().getString("subject"); 
    Intent sendIntent = new Intent(android.content.Intent.ACTION_SEND); 
    sendIntent.setType("text/plain"); 

    Dialog dialog = new Dialog(getActivity(),android.R.style.Theme_Translucent_NoTitleBar); 

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),android.R.style.Theme_Translucent_NoTitleBar); 
    LayoutInflater inflater = (LayoutInflater) getActivity() 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View v = inflater.inflate(R.layout.share_title_layout, null); 
    // Set title divider color 


    TextView txtTitle= (TextView) v.findViewById(R.id.share_title); 
    Typeface tf = Typeface.createFromAsset(getActivity().getResources().getAssets(), 
      "fonts/OpenSansHebrew-Bold.ttf"); 

    txtTitle.setTypeface(tf); 
    View layout=inflater.inflate(R.layout.custom_share_layout_inner,null); 
    builder.setView(layout); 

    ImageView facebook= (ImageView) layout.findViewById(R.id.imgFaceebook); 
    ImageView whatsapp= (ImageView) layout.findViewById(R.id.imgWhatsapp); 
    ImageView more= (ImageView) layout.findViewById(R.id.imgMore); 
    ImageView mail= (ImageView) layout.findViewById(R.id.imgMail); 

    facebook.setOnClickListener(imageClickListener); 
    whatsapp.setOnClickListener(imageClickListener); 
    more.setOnClickListener(imageClickListener); 
    mail.setOnClickListener(imageClickListener); 

    List activities = getActivity().getPackageManager().queryIntentActivities(sendIntent, 0); 
    Context context=(Activity)getActivity(); 
    for(int i=0;i<activities.size();i++) { 
     ResolveInfo appPacageName = (ResolveInfo) activities.get(i); 
     Log.i("pacageName", appPacageName.toString()); 
     if (appPacageName.toString().contains("com.facebook.composer")) { 
      shareCheckList[0] = appPacageName; 
     } else if (appPacageName.toString().contains("whatsapp")) { 
      shareCheckList[1] = appPacageName; 
     } else if (appPacageName.toString().contains("mail")) { 
      shareCheckList[2] = appPacageName; 
     } 
    } 
    dialog.setContentView(layout); 
    Window window = dialog.getWindow(); 
    window.setLayout(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
    window.setGravity(Gravity.CENTER); 
    window.setLayout(MainActivity.screenWidth-90,350); 

    return dialog; 
} 

и это мой ontouch слушатель:

private View.OnClickListener imageClickListener=new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Intent intent = new Intent(android.content.Intent.ACTION_SEND); 
     intent.setType("text/plain"); 
     intent.putExtra(Intent.EXTRA_SUBJECT,getArguments().getString("subject")); 
     intent.putExtra(Intent.EXTRA_TEXT,getArguments().getString("body")); 

     switch (v.getId()){ 
      case R.id.imgFaceebook: 

        if(!shareCheckList[0].toString().isEmpty()){ 
         intent.setClassName(shareCheckList[0].activityInfo.packageName, shareCheckList[0].activityInfo.name);       
         ((Activity)getActivity()).startActivity(intent); 
       break; 
      case R.id.imgWhatsapp:     
         intent.setClassName(shareCheckList[1].activityInfo.packageName, shareCheckList[1].activityInfo.name);       
         ((Activity)getActivity()).startActivity(intent); 
       } 
       break; 
      case R.id.imgMail: 
       try{      
         intent.setClassName(shareCheckList[2].activityInfo.packageName, shareCheckList[2].activityInfo.name); 

         ((Activity)getActivity()).startActivity(intent); 


       break; 
      case R.id.imgMore: 
       CustomDialogFragment2 cdf=new CustomDialogFragment2(); 
       Bundle bundle = new Bundle(); 
       bundle.putString("body",id); 
       bundle.putString("subject", postTitle); 
       cdf.setArguments(bundle); 
       cdf.show(getActivity().getFragmentManager(), "customDialogFragment2"); 
       break; 

     } 

    } 
}; 

ответ

0

Если я понял правильно, вы должны использовать список состояний:

http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

Просто создайте файл для рисования xml для каждого ImageView и установите для каждого элемента состояния wi й источник, который вам нужен.

+0

эй спасибо за ссылку, но ее единственная часть решения .. представьте, что вы нажимаете где-то на экране, и пока вы все еще нажимаете, переместите свой палец к некоторому виду и этому действию (toch, который начинается где-то еще и вводит некоторые view) вызывают некоторые действия для этого представления (в моем цвете фона с изменением цвета). решение, которое вы принесли только эффекты, когда ваше прикосновение находится внутри вида. –

 Смежные вопросы

  • Нет связанных вопросов^_^