BCA / B.Tech 11 min read

Displaying Images and Using Menus in Hindi

Images दिखाना और Menus का उपयोग करना

1: Pictures दिखाने के लिए ImageViews का उपयोग करना

ImageView क्या है?

ImageView Android में एक UI widget है जिसका उपयोग screen पर images दिखाने के लिए किया जाता है। यह `drawable` resources (जैसे .png, .jpg, .gif) या Bitmaps display कर सकता है।

Images को App में कैसे Add करें

Images को आपकी app के `res/drawable` folder में रखा जाना चाहिए। आप simply image file को copy करके Android Studio में इस folder के अंदर paste कर सकते हैं।

XML में ImageView का उदाहरण:


<ImageView
    android:id="@+id/my_image_view"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:src="@drawable/my_image"
    android:scaleType="centerCrop"
    android:contentDescription="A beautiful landscape image" />

महत्वपूर्ण Attributes:

  • android:src: `drawable` folder में मौजूद image resource को set करता है।
  • android:contentDescription: Accessibility के लिए image का description. यह screen readers द्वारा उपयोग किया जाता है।
  • android:scaleType: यह control करता है कि image को `ImageView` के bounds में कैसे fit किया जाएगा। Common values हैं:
    • `fitCenter`: Image को aspect ratio बनाए रखते हुए view के अंदर fit करता है।
    • `centerCrop`: Image को aspect ratio बनाए रखते हुए scale करता है ताकि वह view को पूरी तरह से fill कर दे, और extra part को crop कर देता है।
    • `centerInside`: `fitCenter` की तरह, लेकिन image को scale down तभी करता है जब वह view से बड़ी हो।

2: Views के साथ Menus का उपयोग करना

Android में Menus user को actions की list दिखाने का एक common तरीका है। दो मुख्य प्रकार के menus हैं:

1. Options Menu (ऑप्शंस मेनू)

यह activity के लिए menu items का primary collection होता है जो Action Bar (Toolbar) में दिखाई देता है। इसे बनाने के लिए, आप एक menu resource XML file बनाते हैं, उसे activity में `onCreateOptionsMenu()` method का उपयोग करके inflate करते हैं, और clicks को `onOptionsItemSelected()` method में handle करते हैं।

2. Context Menu (कॉन्टेक्स्ट मेनू)

Context Menu तब दिखाई देता है जब user किसी specific view पर long-press (थोड़ी देर दबाकर रखता है) करता है। यह उस view से related actions दिखाता है।

Context Menu बनाने के Steps:

  1. View को Register करें: Activity के `onCreate()` method में, `registerForContextMenu()` method का उपयोग करके उस view को register करें जिसके लिए आप context menu दिखाना चाहते हैं।
  2. Menu को Inflate करें: `onCreateContextMenu()` method को override करें और menu resource file को inflate करें।
  3. Clicks को Handle करें: `onContextItemSelected()` method को override करें ताकि menu item clicks पर action लिया जा सके।

Java में Context Menu का उदाहरण:

मान लीजिए आपके layout में एक `TextView` (id: `text_for_menu`) है।

Step 1: Menu resource file बनाएं (`res/menu/context_menu.xml`)


<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/action_edit"
          android:title="Edit" />
    <item android:id="@+id/action_delete"
          android:title="Delete" />
</menu>

Step 2: Activity में Context Menu को Implement करें


public class MainActivity extends AppCompatActivity {
    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = findViewById(R.id.text_for_menu);
        
        // 1. TextView को context menu के लिए register करें
        registerForContextMenu(textView);
    }

    // 2. onCreateContextMenu को override करें
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.context_menu, menu);
    }

    // 3. onContextItemSelected को override करें
    @Override
    public boolean onContextItemSelected(MenuItem item) {
        int id = item.getItemId();

        if (id == R.id.action_edit) {
            Toast.makeText(this, "Edit action selected", Toast.LENGTH_SHORT).show();
            return true;
        } else if (id == R.id.action_delete) {
            Toast.makeText(this, "Delete action selected", Toast.LENGTH_SHORT).show();
            return true;
        }

        return super.onContextItemSelected(item);
    }
}